Парсинг характеристик товара из JSON data

Тема в разделе "Парсинг характеристик товаров", создана пользователем Liks, 6 апр 2020.

  1. Liks

    Liks New Member Пользователи

    Регистрация:
    6 июн 2019
    Сообщения:
    26
    Город:
    Москва
    Добрый 'время'!
    подскажите пожалуйста: как JSON разбить вида:

    "properties":[
    {
    "id":7175312,
    "name":"Вид материала",
    "value":"Круглые без рисунка",
    "value_id":28351,
    "image":null,
    "unimportant":true
    },
    {
    "id":7175313,
    "name":"Группа материала",
    "value":"В 85",
    "value_id":27940,
    "image":null,
    "unimportant":true
    },
    {
    "id":7175309,
    "name":"Код ТНВЭД",
    "value":"9503 00 9909",
    "value_id":29485,
    "image":null,
    "unimportant":true
    },
    {
    "id":10362624,
    "name":"Коллекция",
    "value":"Фиолетовая",
    "value_id":27265,
    "image":null,
    "unimportant":false
    },
    {
    "id":10362627,
    "name":"Наличие рисунка",
    "value":"Шар без рисунка",
    "value_id":27797,
    "image":null,
    "unimportant":false
    },

    { \\\\ /n <- неизвестное кол-во свойств массива.... (Динамическое граница парсинга может?)


    НАДА:
    "name":"Вид материала", <= NAME(ИМЯ) Столбика(Колонки)***
    "value":"Круглые без рисунка", <= Значение через разделитель (Например: "|||")
    "value_id":28351, <= Значение через разделитель (Например: "|||")
    "image":null, <= Значение через разделитель (Например: "|||")

    как сие придумать штатно можно? о_О

    Ссылки недоступны для гостей, Ссылки недоступны для гостей
    не придумал как прикрутить**

     
  2. Root

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

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

    С помощью функций поиск-замены приведите данные к формату, необходимому для макроса [DYNAMICVALUES].
     
  3. Liks

    Liks New Member Пользователи

    Регистрация:
    6 июн 2019
    Сообщения:
    26
    Город:
    Москва
    [DYNAMICVALUES] - в том то и дело что не могу придумать как. почему то идет смещение значений по таблице.
    подозрения на экранированные кавычки в JSON (типа: "И 10\"")
    хотя не понятно при чем оно тут....

    если привести в вид:

    """Вид материала"",[VALUE]:""Круглые без рисунка"",""value_id"":28351,""image"":null,""unimportant"":true[NEXTPAIR]
    ""Группа материала"",[VALUE]:""И 10\"""",""value_id"":27945,""image"":null,""unimportant"":true[NEXTPAIR]
    ""Код ТНВЭД"",[VALUE]:""9503 00 9909"",""value_id"":29485,""image"":null,""unimportant"":true[NEXTPAIR]
    ""Коллекция"",[VALUE]:""Желтая"",""value_id"":27169,""image"":null,""unimportant"":false[NEXTPAIR]
    ""Наличие рисунка"....

    На 3 столбике плывет все...
     
  4. Liks

    Liks New Member Пользователи

    Регистрация:
    6 июн 2019
    Сообщения:
    26
    Город:
    Москва
    "подозрения на экранированные кавычки" - почему "{skip}"|{skip}
    было
    [NEXTPAIR]""Группа материала"",[VALUE]:""И 10\"""",""value_id"":27945,""image"":null,""unimportant"":true[NEXTPAIR]
    стало
    [NEXTPAIR]Группа материала,[VALUE]:И 10\,value_id:27945,image:null,unimportant"":true[NEXTPAIR]
    Срабатывает на unimportant"" экран а не на И 10\ -?
     
  5. AlexandrSorokin

    AlexandrSorokin Active Member Пользователи

    Регистрация:
    27 ноя 2018
    Сообщения:
    71
    Город:
    Пермь
    Не до конца понял проблему.
    Однако, можно сделать замену множественных кавычек и слеша с помощью регулярных выражений
    re:"{3,}|" замена 3 и более кавычки на 1
    re:\\{2,}| замена 2 и более слеша \ на пустоту
    re:"(.*)"{2,}|"(.*)" замена двойных и более кавычек на одну, в конце текста, заключенного в кавычки =)
     
    Последнее редактирование: 8 апр 2020
  6. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Через повторяющиеся границы решается Ссылки недоступны для гостей
     
  7. Liks

    Liks New Member Пользователи

    Регистрация:
    6 июн 2019
    Сообщения:
    26
    Город:
    Москва
    с этим разобрался, спасибо. дальше:
    Пример:
    в характеристике 2 раза встречается свойство "Размер" (в цикле DYNAMICVALUES он записывает через {br})
    как переименовать второй "Размер" в например "Размер2"
    (я про любое второе вхождение интерации "Размер", "Цвет", "...и тп")
     
  8. Liks

    Liks New Member Пользователи

    Регистрация:
    6 июн 2019
    Сообщения:
    26
    Город:
    Москва
    Да-Да, я сам баран, забыл что нельзя указать [DYNAMICVALUES][VALUE][/DYNAMICVALUES] через настройку повторяющихся.....
    можно только [DYNAMICVALUES]<CD_CYCLE_GRAN_1!>[/DYNAMICVALUES].
    Отсюда и смещение CSV вылезает ^_^
     
  9. Liks

    Liks New Member Пользователи

    Регистрация:
    6 июн 2019
    Сообщения:
    26
    Город:
    Москва
    А по сути то - при указании разделителя циклов "[NEXTPAIR]" должно же по логике срабатывать.... но почему то на 3 колонке CSV смещение идет*
     
  10. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    DYNAMICVALUES работает строго с разбивкой, если идет смещение, значит
    а) вы что-то не учли
    б) вы на вход полылаете кучу кода, который ЖЕЛАТЕЛЬНО ПОЧИСТИТЬ ПЕРЕД УПОТРЕБЛЕНИЕМ
     

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