Я это увидел. Было проверена масса работающий комбинаций. И с видами полей, Base64, файлами вналичии и т.д.
Но нам ведь была нужна именно не работающая комбинация ? Её-то я нашёл и показал !
Модератор: Дед Пахом
Я это увидел. Было проверена масса работающий комбинаций. И с видами полей, Base64, файлами вналичии и т.д.
Код: Выделить всё
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
Код: Выделить всё
IF LOWER(jsonName) = LOWER(item.name) ...
И Parse() тоже. Всё требует времени ...
Код: Выделить всё
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}]').
Код: Выделить всё
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().
Если прошлый раз раскидать на отдельные темы - то получится форум по классу cJson и это
Обсуждаются частные вопросы применения и какие-то совсем незначительные помарки,
На самом деле класс компактный, впрочем как и сам формат JSON. Вопросов не много.
— Дом-то снесли !