Encode_json в 1С

При интеграции с одним из сайтов получал данные в непривычном для меня формате:

Пришлось накодить парсер/конвертер.
Обработку — прототип прилагаю.

При интеграции с одним из сайтов получал данные в непривычном для меня формате:

leads%5Badd%5D%5B0%5D%5Bid%5D=2862475&leads%5Badd%5D%5B0%5D%5Bname%5D=&leads%5Badd%5D%5B0%5D%5Bstatus_id%5D=15714178&leads%5Badd%5D%5B0%5D%5Bprice%5D=3000&leads%5Badd%5D%5B0%5D%5Bresponsible_user_id%5D=1551763&leads%5Badd%5D%5B0%5D%5Blast_modified%5D=1501263038&leads%5Badd%5D%5B0%5D%5Bmodified_user_id%5D=1551763&leads%5Badd%5D%5B0%5D%5Bcreated_user_id%5D=1551763&leads%5Badd%5D%5B0%5D%5Bdate_create%5D=1501263038&leads%5Badd%5D%5B0%5D%5Bpipeline_id%5D=697153&leads%5Badd%5D%5B0%5D%5Baccount_id%5D=1…

От процентов можно избавиться платформенной функцией «РаскодироватьСтроку»,

leads[add][0][id]=2862475
&leads[add][0][name]=
&leads[add][0][status_id]=15714178
&leads[add][0][price]=3000
&leads[add][0][responsible_user_id]=1551763
&leads[add][0][last_modified]=1501263038
&leads[add][0][modified_user_id]=1551763
&leads[add][0][created_user_id]=1551763
&leads[add][0][date_create]=1501263038…

но получившийся текст — хочется превратить в структуру. В php это делается в одну команду encode_json.

Но нету в 1с json_encode, пришлось накодить.
Обработку — прототип — прилагаю.

14 Comments

  1. CyberCerber

    А КодироватьСтроку, РаскодироватьСтроку не подходит?

    Reply
  2. vano-ekt
    Но нету в 1с json_encode, пришлось накодить.

    и куда это оно делось?

    Reply
  3. vano-ekt

    и причем тут URL энкод и джсон энкод?

    и тот и другой в 1С присутствует с 8.3.6, наверное еще

    Reply
  4. echo77

    (0) А сайт точно JSON возвращает?

    Reply
  5. Serj1C

    попробуйте использовать эти строки:

    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
    Результат = ПрочитатьJSON(ЧтениеJSON, Истина);
    
    Reply
  6. Nikola23

    (4)

    А сайт точно JSON возвращает?

    То, что возвращает сайт — приведено в описании. Это некий массив.

    Reply
  7. Nikola23

    (5)

    В обработке есть пример. Попробуйте применить вашу конструкцию.

    Платформа 8.3.10 — выдает ошибку.

    Reply
  8. Nikola23

    (3)

    URL энкод

    Действительно, при чем тут URL энкод.

    Не помню, что бы я этот метод пытался переписать.

    Reply
  9. Nikola23

    (2)

    Просвятите меня.

    Вот эта конструкция на моих данных выдает ошибку.

    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
    Результат = ПрочитатьJSON(ЧтениеJSON, Истина);
    Reply
  10. Nikola23

    (1)

    КодироватьСтроку

    Кодировать/раскодировать строку позволяет избавиться от знаков «%», но ассоциированный массив в json не переведет.

    Reply
  11. echo77

    (10) Поэтому мне кажется, что сайт возвращает на JSON

    Reply
  12. Nikola23

    (11)

    Не, это ассоциированный массив.

    Reply
  13. japopov

    Ну, получили Вы с сайта ассоциированный массив, да ещё и в отвратном виде, распарсили его в 1С. Сайтокодеры — придурки, в этом я с Вами согласен.

    Но на стороне 1С, при чём тут JSON? На Вас все накинулись поэтому.

    Reply
  14. Nikola23

    (13) На любом форуме будут тролли 🙂

    Скорректировал описание, что бы исключить неоднозначность.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *