|   |   | 
| 
 | v7: Json в 1С 7.7 | ☑ | ||
|---|---|---|---|---|
| 0
    
        zenon46 09.09.25✎ 18:56 | 
        Господа доброго времени суток!
 Давно использую класс КОП_JSON от господина trad. До этого делал простенькие файлы для обмена, тут понадобилось сделать файл чуть сложнее, что-то не получается. Может кто тоже юзает этот класс, посдкажет. Структура, примерно такая. { "set_code": "001", "items": [ { "marketplace": "W", "article": 1223423, "article_post": "3243243", "barcode": 3242354435 } { "marketplace": "O", "article": 234324324, "article_post": "КОД-Н2", "barcode": 3243234 } ] "set_code": "002", "items": [ { "marketplace": "W", "article": 1223423, "article_post": "3243243", "barcode": 3242354435 } { "marketplace": "O", "article": 234324324, "article_post": "КОД-Н2", "barcode": 3243234 } ] } | |||
| 1
    
        Джордж1 09.09.25✎ 20:31 | 
        Если интересно - работаю c JSON без всяких классов     | |||
| 2
    
        АгентБезопасной Нацио 09.09.25✎ 20:36 | 
        (0) ошибка в примере.     | |||
| 3
    
        trad 09.09.25✎ 20:44 | 
        Для начала приведи корректный json, который хочешь получить, а не примерный     | |||
| 4
    
        MWWRuza гуру 09.09.25✎ 20:54 | 
        Ну, я бы не сказал, что такая уж и ошибка...
 Нотепад++ с плагином JSON форматирует его... Лишние пустые строки? Или еще что-то?  Надо будет попробовать распарсить его своими обработками из конфы... PS А вообще, да, внимательнее посмотрел, странный он какой-то... Внутри квадратных скобок фигурные... Или я опять не на то смотрю? | |||
| 5
    
        АгентБезопасной Нацио 09.09.25✎ 20:57 | 
        (4) Это должен быть либо массив структур (с ключами set_code и items), либо ключи должны быть различными.
 Вообще, нет никаких причин не сделать сборку строки хоть из спискаЗначений, Хоть из ТЗ, хоть из Структуры или ИТЗ (1с++). Рекурсией удобнее, без рекурсии лениво придумывать. | |||
| 6
    
        MWWRuza гуру 09.09.25✎ 21:15 | 
        Ага, не разбирает его мой парсер:       | |||
| 7
    
        MWWRuza гуру 09.09.25✎ 21:39 | 
        Весь делать лень, вот кусочек через СЗ: 
  Процедура СобратьJSON() СЗ = СоздатьОбъект("СписокЗначений"); СзИт = СоздатьОбъект("СписокЗначений"); СзИт.ДобавитьЗначение("W"); СзИт.ДобавитьЗначение(1223423); СзИт.ДобавитьЗначение("3243243"); СзИт.ДобавитьЗначение(3242354435); СЗ.ДобавитьЗначение("001", "set_code"); СЗ.ДобавитьЗначение(СзИт, "items"); JSON = ЗначениеВJSON(СЗ); КонецПроцедуры | |||
| 8
    
        MWWRuza гуру 09.09.25✎ 21:54 | 
        Добавил немного: 
  Процедура СобратьJSON() СЗ = СоздатьОбъект("СписокЗначений"); СзИт = СоздатьОбъект("СписокЗначений"); СзИт2 = СоздатьОбъект("СписокЗначений"); СзИтБезИД = СоздатьОбъект("СписокЗначений"); СзИт.ДобавитьЗначение("W", "marketplace"); СзИт.ДобавитьЗначение(1223423, "article"); СзИт.ДобавитьЗначение("3243243", "article_post"); СзИт.ДобавитьЗначение(3242354435, "barcode"); СзИт2.ДобавитьЗначение("O", "marketplace"); СзИт2.ДобавитьЗначение(234324324, "article"); СзИт2.ДобавитьЗначение("КОД-Н2", "article_post"); СзИт2.ДобавитьЗначение(3243234, "barcode"); СзИтБезИД.ДобавитьЗначение(СзИт); СзИтБезИД.ДобавитьЗначение(СзИт2); СЗ.ДобавитьЗначение("001", "set_code"); СЗ.ДобавитьЗначение(СзИтБезИД, "items"); JSON = ЗначениеВJSON(СЗ); КонецПроцедуры | |||
| 9
    
        MWWRuza гуру 09.09.25✎ 22:13 | 
        Добавил еще пару строчек перед передачей списка в функцию:
 СЗ.ДобавитьЗначение("002", "set_code"); СЗ.ДобавитьЗначение(СзИтБезИД, "items"); На выходе:  Как-то так... В (0) нескольких запятых не хватает, а в целом, имеет право на жизнь, ИМХО... | |||
| 10
    
        Злопчинский 09.09.25✎ 22:23 | 
        А где сам собственно
 ЗначениеВJSON(СЗ) | |||
| 11
    
        MWWRuza гуру 09.09.25✎ 22:39 | 
        (10) А я ему давал текстовик с функциями ГМ :-)))
 Тебе нужно? Могу и тебе отправить, просто там довольно громоздкие функции, на JS, и тут их выкладывать как-то не охота :-) Они все есть на ИнфоСтарте, у меня они-же, с минимальными моими доработками. Но, ему они скорее всего не подойдут, там требования сотни мегабайт... Нужно переделывать на поток или использовать еще что-то, так, как в том виде, в каком они у меня работают - 500+ кБ, потолок... Дальше, 1С крашится :-( Мне - хватает с избытком... А парсинг больших JSON файлов, я делаю через 1csqllite от Djelf... Тоже кстати, очень не плохо работает, быстро, и без ограничений по объему, но на выходе не дерево из СЗ, а по сути плоская ТЗ, что не так удобно... Но, я приспособился, первичный разбор большого JSON делаю 1csqllite, а вложенные списки уже этой своей привычной парсю. Так и не падает, и быстро и удобно. | |||
| 12
    
        Злопчинский 09.09.25✎ 22:50 | 
        я отсюда взял (3 недели назад)
 https://infostart.ru/1c/articles/960486/ | |||
| 13
    
        Злопчинский 09.09.25✎ 22:51 | 
        (11) скидавай     | |||
| 14
    
        MWWRuza гуру 10.09.25✎ 08:07 | 
        (13) На почте из профиля     | |||
| 15
    
        MWWRuza гуру 10.09.25✎ 11:56 | 
        (9) нескольких запятых не хватает, а в целом, имеет право на жизнь, ИМХО...
 Кстати, посмотрел сейчас JSON который ТС мне на ВатСап присылал - там все запятые на месте. Это "кривой" тут, в оригинале все верно. | |||
| 16
    
        Злопчинский 10.09.25✎ 14:14 | 
        (14) не, лучше в мессенджерах или на e.meil@mail.ru     | |||
| 17
    
        MWWRuza гуру 10.09.25✎ 15:10 | 
        (16) Так я туда и отправил. Она у тебя в профиле и есть.
 А месенджеров твоих у меня нет сейчас... В старо-давние времена, были скайп и вроде аська(?), сейчас их прибили, есть ВатСап и телега, но там мы с тобой ни разу не состукивались, и у меня твоих контактов в них нет... | |||
| 18
    
        Злопчинский 11.09.25✎ 02:24 | 
        (17) получил в телеге, спсб     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |