@flabot

Как распарсить псевдоJSON на js?

json
"a:3:{i:0;a:9:{s:13:"option_name_t";s:18:"Пенсионер";s:14:"option_price_t";s:3:"200";s:12:"option_qty_t";s:2:"10";s:12:"option_rsv_t";s:1:"0";s:20:"option_default_qty_t";s:1:"0";s:17:"option_qty_t_type";s:8:"inputbox";s:20:"option_sale_end_date";s:10:"2021-03-14";s:20:"option_sale_end_time";s:5:"00:00";s:22:"option_sale_end_date_t";s:16:"2021-03-14 00:00";}i:1;a:9:{s:13:"option_name_t";s:30:"Ребёнок (до 8 лет)";s:14:"option_price_t";s:3:"700";s:12:"option_qty_t";s:2:"10";s:12:"option_rsv_t";s:1:"0";s:20:"option_default_qty_t";s:1:"0";s:17:"option_qty_t_type";s:8:"inputbox";s:20:"option_sale_end_date";s:10:"2021-03-14";s:20:"option_sale_end_time";s:5:"00:00";s:22:"option_sale_end_date_t";s:16:"2021-03-14 00:00";}i:2;a:9:{s:13:"option_name_t";s:14:"Обычный";s:14:"option_price_t";s:4:"1500";s:12:"option_qty_t";s:2:"10";s:12:"option_rsv_t";s:1:"0";s:20:"option_default_qty_t";s:1:"0";s:17:"option_qty_t_type";s:8:"inputbox";s:20:"option_sale_end_date";s:10:"2021-03-14";s:20:"option_sale_end_time";s:5:"00:00";s:22:"option_sale_end_date_t";s:16:"2021-03-14 00:00";}}"


Апи отдаёт такой json, как его разобрать, что бы получить Тип билета(Пенсионер, Ребёнок, Обычный) и цены к ним? Прошу помощи :(
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
@mletov
Зависит от того, насколько часто предполагается доработка и изменение формата. Если не часто, то можно просто заколхозить свой парсер с регулярками, replace и split.

Если есть выход на разработчиков API, то можно уточнить у них, что это за формат такой, альтернативный json. Если они его не сами изобрели и у него есть какое-то название, то тогда в гугле можно будет нагуглить и библиотеку для его парсинга.

PS: Вот что подсказывает Google
https://stackoverflow.com/questions/29815871/what-...
https://stackoverflow.com/questions/14227388/unser...
https://locutus.io/php/var/unserialize/
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Похоже на работу штатной функции PHP serialize.
Стандартного способа десериализации таких данных в JS нет, надо писать свою функцию или гуглить готовую.
Ваш пример декодируется как:
spoiler
[
  {
    ​​option_default_qty_t: "0",
​​    option_name_t: "Пенсионер"
​​    option_price_t: "200",
    option_qty_t: "10",
    option_qty_t_type: "inputbox",
​​    option_rsv_t: "0",
​​    option_sale_end_date: "2021-03-14",
​​    option_sale_end_date_t: "2021-03-14 00:00",
​​    option_sale_end_time: "00:00",
​​  }, {
​    option_default_qty_t: "0",
​​    option_name_t: "Ребёнок (до 8 лет)",
​​    option_price_t: "700",
​​    option_qty_t: "10",
​​    option_qty_t_type: "inputbox",
​​    option_rsv_t: "0",
​​    option_sale_end_date: "2021-03-14",
    ​​option_sale_end_date_t: "2021-03-14 00:00",
    ​​option_sale_end_time: "00:00",
​​  }, {
​​    option_default_qty_t: "0",
​​    option_name_t: "Обычный",
​​    option_price_t: "1500",
​​    option_qty_t: "10",
​​    option_qty_t_type: "inputbox",
​​    option_rsv_t: "0",
​​    option_sale_end_date: "2021-03-14",
​​    option_sale_end_date_t: "2021-03-14 00:00",
​​    option_sale_end_time: "00:00",
  }
]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы