Страница 2 из 2
cJSON: Рабочие вопросы при работе с классом
Добавлено: 10 Январь 2023, 18:33
Игорь Столяров
Дед Пахом писал(а): ↑10 Январь 2023, 17:29
то увидели бы, что IsFile прекрасно работает
Я это увидел. Было проверена масса работающий комбинаций. И с видами полей, Base64, файлами вналичии и т.д.
Но нам ведь была нужна именно не работающая комбинация ?
Её-то я нашёл и показал !
cJSON: Рабочие вопросы при работе с классом
Добавлено: 10 Январь 2023, 18:34
Дед Пахом
Ну да, и сказали, что IsFile не работает, что сильно сбило с толку.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 12 Январь 2023, 9:01
Игорь Столяров
Сразу хочу сказать, что свой вопрос с перебором заголовков больших JSON пакетов
я решил и запустил в работу. Работает не просто быстро, а очень быстро.
Код: Выделить всё
GetJsonHeader PROCEDURE (String sFileName_,*Group gPacket_,String sBreakTag_)
MyJSon cJSONFactory
Root &cJson
RetVal BYTE(False)
sData &STRING
CODE
sData &= LoadStrFromFile(sFileName_,4096) ! Считаем, что заголовок пакета менее 4 KByte (опционально)
If Not (sData &= Null) then BreakPosition# = InString('"' & Lower(sBreakTag_) & '":',Lower(sData),1,1)
If BreakPosition# > 2 then Root &= MyJSon.Parse(Sub(sData,1,BreakPosition# - 2) & '}',CP_ACP)
If Not (Root &= Null) then RetVal = Root.ToGroup(gPacket_); Root.Delete().
end
Dispose(sData)
end
Return RetVal
И возможно конечно я чего-то не понимаю, но я не увидел каких-то проблем в классе
с прыванием / пропуском загрузки в cJSON.ToGroup() на заданном теге, т.к. это место определено:
cJSON: Рабочие вопросы при работе с классом
Добавлено: 12 Январь 2023, 12:20
Дед Пахом
Емнип речь шла о прерывании загрузки в Parse().
cJSON: Рабочие вопросы при работе с классом
Добавлено: 12 Январь 2023, 13:21
Игорь Столяров
Дед Пахом писал(а): ↑12 Январь 2023, 12:20
речь шла о прерывании загрузки в Parse()
И Parse() тоже. Всё требует времени ...
Но я понимаю, что общее решение здесь невозможно, а частное для своих задач я реализовал.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 15:09
Игорь Столяров
Добрый день !
Это снова я и у меня есть вопрос !
Для обмена списками между потоками юзаем незатейливую комбинацию (казалось бы !):
Код: Выделить всё
If Who(qList_,2) = '' then Root &= json::CreateSimpleArray(qList_,1,False,'[{{"name":"*","IgnoreEmptyObject":true,"IgnoreZero":true}]')
else Root &= json::CreateArray( qList_, False,'[{{"name":"*","IgnoreEmptyObject":true,"IgnoreZero":true}]').
и к традиционному json::CreateArray() вопросов нет, но (как сегодня выяснилось) вот такой тест:
Код: Выделить всё
qList Queue
Fld Long
end
Code
qList.Fld = 1; Add(qList)
qList.Fld = 0; Add(qList)
qList.Fld = -1; Add(qList)
qList.Fld = 0; Add(qList)
Root &= json::CreateSimpleArray(qList,1,False,'[{{"name":"*","IgnoreEmptyObject":true,"IgnoreZero":true}]')
If Not (Root &= Null) then Message(Root.ToString()); Root.Delete().
возвращает: [1, 0, -1, 0]
хотя ожидания (аналогично json::CreateArray): [1, -1]
Затрудняюсь сказать, чем идеологически является "0" в таком SimpleArray (объектом или значением тега) - но его там быть не должно.
И есть техническое предложение.
Если Root.ToString(FALSE) - то убрать жрущие впустую память пробелы, т.е.: '[1,0,-1,0]' вместо '[1, 0, -1, 0]'
Спасибо за рассмотрение !
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 16:29
Дед Пахом
Да, json::CreateSimpleArray игнорирует правила для полей, попробуйте v1.38.1 на FTP.
Про лишние пробелы: используйте json::Minify.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 16:55
Дед Пахом
Как модератор хочу Вас попросить смело открывать новую тему (когда это оправдано), а не сваливать все вопросы в одну, как в прошлый раз.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 17:30
Игорь Столяров
Дед Пахом писал(а): ↑13 Январь 2023, 16:55
а не сваливать все вопросы в одну, как в прошлый раз
Если прошлый раз раскидать на отдельные темы - то получится форум по классу cJson и это
замылит все остальные робкие обсуждения по вопросам Clarion. Что в общем-то не верно.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 18:09
Дед Пахом
В сорокастраничных темах "обо всём" невозможно ничего найти.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 19:54
finsoftrz
Лучше сделать и выложить какой-нибудь faq с примерами кода, отдельно от этих тем. В дополнение к примера из дистрибутива класса, или прямо туда все включить. Как мне кажется, искать в любом случае по такому обсуждению сложно будет. Тем более, про что тут написано, кроме вас двоих никто не понимает скорее всего.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 20:25
kreator
А как насчёт сделать подфорумы в "Программы, шаблоны, библиотеки..."? Для горячо обсуждаемых продуктов.
Вы ещё посоветовали бы в личку всё это перенести.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 20:48
Игорь Столяров
finsoftrz писал(а): ↑13 Январь 2023, 19:54
Тем более, про что тут написано, кроме вас двоих никто не понимает скорее всего.
Обсуждаются частные вопросы применения и какие-то совсем незначительные помарки,
которые видны только на достаточно редких и специфических наборах данных.
Если кому-то вдруг интересен путь познания - смотрите пожалуйста этот сериал.
А для работы есть штатные примеры и авторская документация, в которой рассмотрены
практически все вопросы применения. Ну, если конечно её читать ...
kreator писал(а): ↑13 Январь 2023, 20:25
А как насчёт сделать подфорумы в "Программы, шаблоны, библиотеки..."?
На самом деле класс компактный, впрочем как и сам формат JSON. Вопросов не много.
С другой стороны - в корне форума есть раздел MAV, хотя где тот MAV и его автор ?
Последнее сообщение более 6 лет назад, а от автора - уже более 10 лет назад ...
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 21:23
finsoftrz
Автор лет 10 назад на с# перешёл. А что Вы хотите? Последний реальный баг фикс в самом кларионе более 5 лет назад был, а то и больше.
cJSON: Рабочие вопросы при работе с классом
Добавлено: 13 Январь 2023, 21:37
Игорь Столяров
finsoftrz писал(а): ↑13 Январь 2023, 21:23
Автор лет 10 назад на с# перешёл.
— Дом-то снесли !
— Снесли … А стеночка осталась ...
(С) Дозор, не помню какой именно.