Парсинг массивов данных JSON

Тема в разделе "Решение различных задач по парсингу", создана пользователем TeslaCo, 22 окт 2021.

  1. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    Здравствуйте, подскажите как взять данные из info и размножить текст для Price ?
    вывел все элементы key interId из list Price вот так:
    {LIST(*Price)}{KEY(interId)}
    {LIST_SEP} у меня - [CSVLB]

    как мне вывести из list info все key orgName для каждой строчки list price.
    upload_2021-10-22_14-19-13.png

    то есть сюда позаписывать (одно и то же) из list info, key orgName
    upload_2021-10-22_14-24-40.png
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Нужно посмотреть JSON.

    Можете предоставить URL страницы, где этот JSON?
     
    TeslaCo нравится это.
  3. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    Прикрепил код json
     

    Вложения:

    • json.txt
      Размер файла:
      127,6 КБ
      Просмотров:
      2
  4. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    Ещё подскажите пожалуйста , как выбрать именно этот лист ?
    upload_2021-10-23_11-0-30.png
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    [HANDLEJSON]
    {OUT_TEMPLATE}{LIST(>firms)}{KEY(packs)}{/LIST}{/OUT_TEMPLATE}
    ▒{KEY()}
    ▒{KEY({LEVEL})}
    ▒{LIST()}{/LIST}
    {VALUES_REPLACE}{/VALUES_REPLACE}
    {PARAMS}values_json_decode{/PARAMS}
    {LIST_SEP}{br2}{/LIST_SEP}
    {JSON_DATA}
    
    {"type":"rProductFiltersTr","code":1,"description":"Успешно.","forms":[{"objId":0,"objName":"Лекарственные средства","objUrlName":"Лекарства","objTranslitUrlName":"lekarstva","interId":7165,"interName":"Эзомепразол","interTranslitUrlName":"ezomeprazol","interHighlightedName":"","interInn":1,"tradeId":0,"tradeName":"Нексиум","medId":69335,"medName":"Нексиум пеллеты и гранулы 10мг","medTranslitName":"neksium-pellety-i-granuly-10mg","medHighlightedName":"","filteredMedName":"Нексиум пеллеты и гранулы 10мг","medForm":"пеллеты и гранулы 10мг","phagrpId":0,"phagrpName":"","phagrpTranslitUrlName":"","minPrice":222.00,"minPriceStr":"222 руб","maxPrice":3366.20,"maxPriceStr":"3 367 руб","orgCount":1,"orgCountStr":"1","deliveryCount":0,"selectedOrgCount":0,"selectedMetroCount":0,"isMedInWuserNote":false,"isMedInWuserNoteBasket":false},{"objId":0,"objName":"Лекарственные средства","objUrlName":"Лекарства","objTranslitUrlName":"lekarstva","interId":7165,"interName":"Эзомепразол","interTranslitUrlName":"ezomeprazol","interHighlightedName":"","interInn":1,"tradeId":0,"tradeName":"Нексиум","medId":25190,"medName":"Нексиум таблетки 20мг","medTranslitName":"neksium-tabletki-20mg","medHighlightedName":"","filteredMedName":"Нексиум таблетки 20мг","medForm":"таблетки 20мг","phagrpId":0,"phagrpName":"","phagrpTranslitUrlName":"","minPrice":185.00,"minPriceStr":"185 руб","maxPrice":293.30,"maxPriceStr":"294 руб","orgCount":1,"orgCountStr":"1","deliveryCount":0,"selectedOrgCount":0,"selectedMetroCount":0,"isMedInWuserNote":false,"isMedInWuserNoteBasket":false},{"objId":0,"objName":"Лекарственные средства","objUrlName":"Лекарства","objTranslitUrlName":"lekarstva","interId":7165,"interName":"Эзомепразол","interTranslitUrlName":"ezomeprazol","interHighlightedName":"","interInn":1,"tradeId":0,"tradeName":"Нексиум","medId":25191,"medName":"Нексиум таблетки 40мг","medTranslitName":"neksium-tabletki-40mg","medHighlightedName":"","filteredMedName":"Нексиум таблетки 40мг","medForm":"таблетки 40мг","phagrpId":0,"phagrpName":"","phagrpTranslitUrlName":"","minPrice":366.00,"minPriceStr":"366 руб","maxPrice":586.40,"maxPriceStr":"587 руб","orgCount":1,"orgCountStr":"1","deliveryCount":0,"selectedOrgCount":0,"selectedMetroCount":0,"isMedInWuserNote":false,"isMedInWuserNoteBasket":false}],"packs":[{"id":7,"fullName":"","shortName":"","packs":[],"countries":[7],"firms":[2493,7690,6080,6062]},{"id":14,"fullName":"","shortName":"","packs":[],"countries":[7],"firms":[2493,7690,6080,6062]},{"id":28,"fullName":"","shortName":"","packs":[],"countries":[7],"firms":[2493,7690,6080,6062]}],"countries":[{"id":7,"fullName":"Швеция","shortName":"Швеция","packs":[7,14,28],"countries":[],"firms":[2493,7690,6080,6062]}],"firms":[{"id":2493,"fullName":"АстраЗенека АБ","shortName":"АстраЗенека АБ","packs":[7,14,28],"countries":[7],"firms":[]},{"id":7690,"fullName":"АстраЗенека АБ/АстраЗенека Индастриз","shortName":"АстраЗенека АБ/АстраЗенека Индастриз","packs":[7,14,28],"countries":[7],"firms":[]},{"id":6080,"fullName":"АстраЗенека АБ/ЗиО-Здоровье","shortName":"АстраЗенека АБ/ЗиО-Здоровье","packs":[7,14,28],"countries":[7],"firms":[]},{"id":6062,"fullName":"АстраЗенека АБ/Корден Фарма","shortName":"АстраЗенека АБ/Корден Фарма","packs":[7,14,28],"countries":[7],"firms":[]},{"id":6277,"fullName":"АстраЗенека АБ/Корден Фарма/Зио-Здоровье","shortName":"АстраЗенека АБ/Корден Фарма/Зио-Здоровье","packs":[7,14,28],"countries":[7],"firms":[]}]}
    
    {/JSON_DATA}
    [/HANDLEJSON]
     
    TeslaCo нравится это.
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Задайте границу парсинга, например, 3 для взятия OrgName и вставьте ее в шаблон
    Код:
    {OUT_TEMPLATE}{LIST(>Price)}{KEY(interId)}[CSVCS]<CD_GRAN_3!>{/LIST}{/OUT_TEMPLATE}
    Таким образом, ко всем interId (взятых из узла Price) добавится одно OrgName, указанное из узла Info.

    Судя по вашему сообщению, я так и не понял, что конкретно требуется, предположил, что это.
     
    TeslaCo нравится это.

Поделиться этой страницей