cJSON

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
✯ Ветеран ✯
Сообщения: 1485
Зарегистрирован: 25 Март 2009, 21:55

cJSON

Сообщение gopstop2007 »

столкнулся с проблемой, воспользовался cJSON, для парсинга как в примере https://github.com/mikeduglas/cJSON/blo ... upTest.clw
при разборе строки, обнаружил ограничение в 2048 символов, со строками менее 2048 проблем нет
как обойти данное ограничение?

пример строки для разбора

Код: Выделить всё

{"id":44,"parent":9,"name":"Майский чай","picture":"","price":0,"modifications":[{"name":"Відбірна гранула 90г","id":12035,"delete":0,"barcode":"4820198800154","modificator_product_code":"","price":23.5,"hidden":0},{"name":"Царська корона крупнолистовий 250г","id":12036,"delete":0,"barcode":"4820018735680","modificator_product_code":"","price":82.75,"hidden":0},{"name":"лисма индийский крепкий","id":17157,"delete":0,"barcode":"4823063701655","modificator_product_code":"","price":52.25,"hidden":0},{"name":"Цейлон золотий","id":17927,"delete":0,"barcode":"4823063701532","modificator_product_code":"","price":33.5,"hidden":0},{"name":"Индійский мійцний","id":17928,"delete":0,"barcode":"4823063701747","modificator_product_code":"","price":19.75,"hidden":0},{"name":"Зелена пелюстка великий лист 85г","id":12553,"delete":0,"barcode":"4823063700412","modificator_product_code":"","price":33.5,"hidden":0},{"name":"Лісова ягода 20шт","id":14345,"delete":0,"barcode":"4823063700498","modificator_product_code":"","price":14,"hidden":0},{"name":"корона 100 пакетов","id":17161,"delete":0,"barcode":"4820018731873","modificator_product_code":"","price":77.75,"hidden":0},{"name":"Лісма Китайський зелений 80г","id":12554,"delete":0,"barcode":"4820018736120","modificator_product_code":"","price":17.75,"hidden":0},{"name":"майский голд","id":17162,"delete":0,"barcode":"4823063703178","modificator_product_code":"","price":22,"hidden":0},{"name":"Лісма Особливо міцний 90г","id":12555,"delete":0,"barcode":"4820018739763","modificator_product_code":"","price":17,"hidden":0},{"name":"Лісма Міцний з лимоном 20шт","id":12556,"delete":0,"barcode":"4820018739787","modificator_product_code":"","price":14,"hidden":0},{"name":"Лісма Міцний з бергамотом 20шт","id":12557,"delete":0,"barcode":"4820018736144","modificator_product_code":"","price":14,"hidden":0},{"name":"Лісма Солодка полуниця 20шт","id":12558,"delete":0,"barcode":"4820018736069","modificator_product_code":"","price":15.25,"hidden":0},{"name":"Лісма Садова смородина 20шт","id":12559,"delete":0,"barcode":"4820018736106","modificator_product_code":"","price":14,"hidden":0},{"name":"Лісма Домашня малина 20шт","id":12560,"delete":0,"barcode":"4820018736090","modificator_product_code":"","price":15.25,"hidden":0},{"name":"Малина","id":18192,"delete":0,"barcode":"4823063703093","modificator_product_code":"","price":36.5,"hidden":0},{"name":"Лісма Китайський зелений 25шт","id":12561,"delete":0,"barcode":"4820018733754","modificator_product_code":"","price":16,"hidden":0},{"name":"класичний 25*2г 50г","id":16427,"delete":0,"barcode":"4823063702010","modificator_product_code":"","price":19.25,"hidden":0},{"name":"царська корона 85г","id":16428,"delete":0,"barcode":"4823063702157","modificator_product_code":"","price":33.5,"hidden":0},{"name":"Байховий 28 пакетів","id":13638,"delete":0,"barcode":"4823063700207","modificator_product_code":"","price":16.25,"hidden":0},{"name":"Аромат Бергамоту","id":13639,"delete":0,"barcode":"4823063700467","modificator_product_code":"","price":33.5,"hidden":0},{"name":"Царська корона 28 пакетів","id":13640,"delete":0,"barcode":"4823063700238","modificator_product_code":"","price":17.75,"hidden":0},{"name":"Особливо міцний лісма 25шт","id":13131,"delete":0,"barcode":"4823063700542","modificator_product_code":"","price":13.5,"hidden":0},{"name":"Відбірний високогірний 50 г","id":5714,"delete":0,"barcode":"4820018738360","modificator_product_code":"","price":11.25,"hidden":0},{"name":"Граф Грей 90г","id":5715,"delete":0,"barcode":"4820018731972","modificator_product_code":"","price":23.5,"hidden":0},{"name":"Царська корона 50г","id":5716,"delete":0,"barcode":"4820018730104","modificator_product_code":"","price":21.75,"hidden":0},{"name":"Царська корона 180г","id":5717,"delete":0,"barcode":"4820018732948","modificator_product_code":"","price":63.5,"hidden":0},{"name":"з лимоном 45 г 25*1,8 г","id":15189,"delete":0,"barcode":"4823063701907","modificator_product_code":"","price":15.25,"hidden":0},{"name":"Байховий Чай 25шт пакет","id":5718,"delete":0,"barcode":"4820018732078","modificator_product_code":"","price":20.25,"hidden":0},{"name":"Царська корона 25шт пакет +3","id":5719,"delete":0,"barcode":"4820018732085","modificator_product_code":"","price":21,"hidden":0},{"name":"Байховий Чай 85г","id":5720,"delete":0,"barcode":"4820018730029","modificator_product_code":"","price":26.75,"hidden":0},{"name":"Яскравий Єкзотік","id":89,"delete":0,"barcode":"4820018737325","modificator_product_code":"","price":26.5,"hidden":0},{"name":"Царська корона 85г","id":5721,"delete":0,"barcode":"4820018730111","modificator_product_code":"","price":28.5,"hidden":0},{"name":"клубничний Саусеп","id":90,"delete":0,"barcode":"4820018737318","modificator_product_code":"","price":26.5,"hidden":0},{"name":"Відбірний Високогірний 25шт пакет","id":5722,"delete":0,"barcode":"4820018737592","modificator_product_code":"","price":22.75,"hidden":0},{"name":"Плід Страсті","id":91,"delete":0,"barcode":"4820018737301","modificator_product_code":"","price":26.5,"hidden":0},{"name":"Граф Грей 25 шт","id":5723,"delete":0,"barcode":"4820018732269","modificator_product_code":"","price":23.75,"hidden":0},{"name":"класический высокогорний 85 гр","id":16990,"delete":0,"barcode":"4823063704007","modificator_product_code":"","price":32.5,"hidden":0},{"name":"Чай байховый 25 шт 50 грам","id":16991,"delete":0,"barcode":"4823063702133","modificator_product_code":"","price":22,"hidden":0},{"name":"Ароматный с бергамотом ","id":17770,"delete":0,"barcode":"4823063701617","modificator_product_code":"","price":15.25,"hidden":0},{"name":"Лисма 22шт  Индийский","id":12907,"delete":0,"barcode":"4823063700245","modificator_product_code":"","price":10.5,"hidden":0},{"name":"Чай граф грей 37,5","id":3478,"delete":0,"barcode":"4820018732269","modificator_product_code":"","price":26,"hidden":0},{"name":"Чай зелена пелюстка 50г","id":3479,"delete":0,"barcode":"4820018735253","modificator_product_code":"","price":22,"hidden":0},{"name":"Байховий","id":18336,"delete":0,"barcode":"4823063701921","modificator_product_code":"","price":34.5,"hidden":0},{"name":"чай 180 г","id":18390,"delete":0,"barcode":"4823063702072","modificator_product_code":"","price":62.5,"hidden":0},{"name":"Майский Зеленый ","id":17882,"delete":0,"barcode":"4823063702065","modificator_product_code":"","price":22.75,"hidden":0},{"name":"Царская корона 40шт","id":11229,"delete":0,"barcode":"4820018737233","modificator_product_code":"","price":30.75,"hidden":0},{"name":"Царская корона 100шт","id":11230,"delete":0,"barcode":"4820018731873","modificator_product_code":"","price":77.75,"hidden":0},{"name":"100пакетиков Байховый","id":11231,"delete":0,"barcode":"4820018731200","modificator_product_code":"","price":74.25,"hidden":0},{"name":"Індійський міцний лісма 25г","id":8688,"delete":0,"barcode":"4820018732986","modificator_product_code":"","price":14,"hidden":0},{"name":"індійський 90г","id":8689,"delete":0,"barcode":"4820018731125","modificator_product_code":"","price":19.75,"hidden":0},{"name":"байховий 100лджрн","id":8690,"delete":0,"barcode":"4820018733006","modificator_product_code":"","price":50,"hidden":0},{"name":"лисма индийский","id":17149,"delete":0,"barcode":"4823063701693","modificator_product_code":"","price":15.25,"hidden":0}],"color":"red","delete":0,"hidden":0,"workshop":1,"weight_flag":0,"barcode":"","fiscal_program":0,"tax_id":0,"tax_name":"","sort_order":999,"cooking_time":0,"extras":[],"unit":"p","tax_type":0,"tax_value":0,"fiscal":0,"nodiscount":0,"last_modified_time":1566204844}
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2515
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

cJSON

Сообщение Дед Пахом »

gopstop2007 писал(а):
11 Ноябрь 2019, 12:19
обнаружил ограничение в 2048 символов
Давайте код, проверю.
С уважением, ДП

gopstop2007
✯ Ветеран ✯
Сообщения: 1485
Зарегистрирован: 25 Март 2009, 21:55

cJSON

Сообщение gopstop2007 »

Дед Пахом писал(а):
11 Ноябрь 2019, 12:30
gopstop2007 писал(а):
11 Ноябрь 2019, 12:19
обнаружил ограничение в 2048 символов
Давайте код, проверю.
Извиняюсь, ложная тревога, начал собирать пример и выяснил, проблема была в импортируемых данных из sqlite, в dictonary из импортируемой таблицы, поле с данными длина строки было указано 2048.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4920
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

cJSON

Сообщение Игорь Столяров »

Извиняюсь, но можно спросить для StartUp ? Как формировать JSON пакет - разобрался по примерам.
Но что-то не пойму как распарсить JSON строку в QUEUE ... :(

Т.е. что-то вроде штатного класса:

Код: Выделить всё

Loc:MyQUEUE QUEUE
Field1 String(20)
Field2 String(20)
Field3 String(20)
   end
   
   Code
   MyJSon.FromJSON(Loc:JSONString,Loc:MyQUEUE)
   Loop i# = 1 to Records(Loc:MyQUEUE)
     Message(Loc:MyQUEUE.Field1)
   end
Или скажите пожалуйста в каком файле посмотреть такой пример.
Заранее спасибо. :)
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2515
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

cJSON

Сообщение Дед Пахом »

Оба класса, cJSON и cJSONFactory, имеют метод ToQueue. Пример есть в QueueTest.clw.
С уважением, ДП

Ответить