Парсинг JSON элементов с помощью макроса шаблона вывода [HANDLEJSON] (используйте этот способ)
Примечание: У макроса [HANDLEJSON]…[/HANDLEJSON] есть альтернативная версия [HANDLEJSON_F]…[/HANDLEJSON_F] (она работает точно также, но выполняется намного раньше относительно других функций и макросов).
[HANDLEJSON]
{OUT_TEMPLATE}Шаблон для парсинга JSON, содержащий операторы KEY и LIST + любые другие данные{/OUT_TEMPLATE}
Операторы KEY и LIST вставляются в шаблон для парсинга JSON (внутрь параметра OUT_TEMPLATE).
{KEY(путь к получаемому элементу по JSON структуре)} - парсинг одного из элементов JSON
{LIST(путь к родительскому элементу по JSON структуре)}вложенные операторы KEY и LIST для получения данных из каждого цикла LIST{/LIST} - парсинг всех элементов из указанного родительского
{VALUES_REPLACE}Сюда можно вставить правила функции поиск замены для обработки получаемых данных{/VALUES_REPLACE}
{PARAMS}values_json_decode - этот параметр раскодирует получаемые данные из JSON кодировки{/PARAMS}
{LIST_SEP}Сюда вставьте разделитель циклов оператора LIST{/LIST_SEP}
{JSON_DATA}
Сюда вставьте JSON код (или границу парсинга с JSON кодом). JSON должен быть целостным (без обрезанных скобок). Перед работой ознакомьтесь с синтаксисом формата JSON!
{/JSON_DATA}
[/HANDLEJSON]
[HANDLEJSON]
{OUT_TEMPLATE}Шаблон для парсинга JSON, содержащий операторы KEY и LIST + любые другие данные{/OUT_TEMPLATE}
Операторы KEY и LIST вставляются в шаблон для парсинга JSON (внутрь параметра OUT_TEMPLATE).
{KEY(путь к получаемому элементу по JSON структуре)} - парсинг одного из элементов JSON
{LIST(путь к родительскому элементу по JSON структуре)}вложенные операторы KEY и LIST для получения данных из каждого цикла LIST{/LIST} - парсинг всех элементов из указанного родительского
{VALUES_REPLACE}Сюда можно вставить правила функции поиск замены для обработки получаемых данных{/VALUES_REPLACE}
{PARAMS}values_json_decode - этот параметр раскодирует получаемые данные из JSON кодировки{/PARAMS}
{LIST_SEP}Сюда вставьте разделитель циклов оператора LIST{/LIST_SEP}
{JSON_DATA}
Сюда вставьте JSON код (или границу парсинга с JSON кодом). JSON должен быть целостным (без обрезанных скобок). Перед работой ознакомьтесь с синтаксисом формата JSON!
{/JSON_DATA}
[/HANDLEJSON]
Примечание: Когда используется два {LIST} (один вложен в другой), то в дочернем {LIST} вместо {KEY} можно использовать {PARENT_KEY}. {PARENT_KEY} работает аналогично {KEY}, но берет данные из кода родительского {LIST} (а не из вложенного {LIST}).
Важно знать
Для отображения структуры (дерева) JSON пользуйтесь следующим функционалом
Примеры создания пути для оператора KEY
Использование параметра {LEVEL} в операторе {KEY} (для более удобного контроля над получением значений элементов с учетом уровня их вложенности в дереве JSON)
Примеры создания пути для оператора LIST
В LIST получит все элементы, которые содержатся в указанном родительском. В LIST могут вкладываться сколько угодно KEY (для парсинга элементов из цикла) и LIST (для создания вложенных циклов).
Пути во вложенных в LIST элементах (KEY и другие LIST) указываются относительно НЕ корня JSON, а относительно родительского элемента основного LIST.
В итоге получим 3 элемента с именем Prop, взятых из трех дочерних элементов родительского Additional.
Парсинг JSON элементов с помощью специализированных операторов функции поиск-замены
Парсинг ВСЕХ вложенных дочерних элементов (по имени родительского)
Раскрыть спойлер
На некоторых сайтах нужные данные представлены в виде JSON, например:
Где: {"ID":40981,"NAME":"Name1"} и {"ID":40979,"NAME":"Name2"} два нужных элемента. При том, что внутри каждого элемента может быть разное количество открывающихся и закрывающихся скобок, что делает парсинг таких данных не совсем удобным.
Для парсинга элементов JSON в программе есть специальная функция поиск-замены (вставляется на отдельную строку):
Где параметры start и end служат для обозначения начала и конца всего блока JSON в HTML-коде (их можно не указывать, если вы работаете только с JSON).
Параметр container служит для обозначения имени родительского для нужных элементов. Для парсинга JSON-кода из примера выше параметр container следует задать следующим образом:
Это правило поиск-замены следует прописывать для исходного кода (shift+ctrl+r), чтобы границы парсинга брали контент уже из обработанного кода WEB-документа. После установки правильных параметров, функция поиск-замена добавить [MARKER]…[/MARKER] к каждому элементу JSON. Далее можно будет легко спарсить данные с помощью повторяющихся границ, задав их начало, как [MARKER], а конец, как [/MARKER].
Для более глубокого понимания метода парсинга JSON смотрите видео (выше).
PS: Для быстрой вставки [MARKER]…[/MARKER] в границы парсинга пользуйтесь соответствующим пунктом соответствующего контекстного меню в инструменте задания границ парсинга
Парсинг ОДНОГО указанного элемента по пути к нему (с параметром {path})