десериализовать массив в Delphi

Есть ли какая-либо функция в Delphi, как «unserialize ()» в PHP?

Массив, который у меня есть, имеет строковый формат:

а: 6: {s: 15: «info_buyRequest»; а: 2: {s: 3: «кол-во»; я: 1; s: 1
5: «super_attribute»; а: 2: {я: 234; s: 4: «2047»; я: 237; s:
4: «4312»;}} s: 15: «attributes_info»; а: 2: {я: 0; а: 2: {s:
5: «метка»; s: 6: «Taglia»; s: 5: «значение»; s: 6: «6
Anni «;} я: 1; а: 2: {s: 5:» метка «; s: 9:» TIPOLOGIA «; s: 5:» v
alue «; s: 25:» Completo + Pallone
Adidas «;}} s: 11:» simple_name «; s: 78:» Maglia Bacca Milan «Carlos Ufficiale
2015, 2016, комплектный Pallone Jersey AC
МИЛАН «; s: 10:» simple_sku «; s: 4:» — 148 «; s: 20:» product_calculations «; я: 1; s: 13:» корабельщики
t_type «, я: 0;}

Спасибо

0

Решение

Есть ли какая-либо функция в Delphi, как «unserialize ()» в PHP?

В библиотеке времени выполнения Delphi нет ничего, что могло бы работать непосредственно на выходе из PHP serialize(). Эта функция использует нестандартный формат на заказ. В идеальном мире вы будете использовать широко принятый стандарт, такой как JSON. Действительно, PHP поддерживает JSON, и если сериализация была выполнена с json_encode() было бы просто десериализовать в Delphi или любом другом основном языке.

Для решения вашей проблемы вам потребуется один из следующих вариантов:

  1. Измените код, который генерирует текст, чтобы использовать стандартный формат, такой как JSON.
  2. Перекодируйте текст, используя движок PHP, в стандартный формат, такой как JSON. Вы бы сделали это с json_encode(unserialize(...)),
  3. Написать или найти существующий код Delphi, который анализирует и десериализует текст, созданный serialize(),

FWIW, любой API, который вручает вам вывод serialize() плохо продуман, и можно было бы посчитать целесообразным поиск альтернативы.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector