#json #delphi #синтаксический_анализ
Чем парсить Json? Есть какие нибудь нормальные и легкие в освоении парсеры Json?
Ответы
Ответ 1
Все ведь на официальном сайте JSONа перечислены: JSON delphi library Delphi Web Utils json-superobject tiny-jsonОтвет 2
uses Data.DBXJSON //.. var JSONObject: TJSONObject; begin JSONObject := TJSONObject.ParseJSONValue('{"name","value"}') as TJSONObject; ShowMessage(JSONObject.Get('name').JsonValue.Value) но не хочет парсить данные типа {123:"value"} написал такой "патч": class function TJSONObject.ParsePair(const Br: TJSONByteReader; const Parent: TJSONObject): Integer; var Pair: TJSONPair; CommaPos: Integer; begin Pair := TJSONPair.Create; Parent.AddDescendant(Pair); // CommaPos := ParseString(Br, Pair); ///////////////////////////////////////// { Заміна щоб бачило рядки типу {33:33} ConsumeWhitespaces(Br); if Br.PeekByte in [Ord('0')..Ord('9')] then CommaPos := ParseNumber(Br, Pair) else CommaPos := ParseString(Br, Pair); {/} if CommaPos > 0 then begin ConsumeWhitespaces(Br); if Br.Empty then Exit(-Br.Offset); if Br.PeekByte <> Ord(':') then Exit(-Br.Offset); Br.ConsumeByte; ConsumeWhitespaces(Br); CommaPos := ParseValue(Br, Pair); end; Result := CommaPos; end; Просто замени соответствующую функу (можешь сохранить в другом файле)Ответ 3
Начиная с Delphi 2010 присутствует встроенная поддержка json (модуль Data.DBXJSON) в рамках технологии dbExpress, также в дополнение к уже перечисленным библиотекам, появилась еще одна от Andreas Hausladen, автора IDE Tools для Delphi: Json Data Objects, поддерживаются версии начиная с 2009.Ответ 4
Результата стоило бы стыдиться, но меня не устроил ни один из имевшихся вариантов, поэтому я написал свой: https://github.com/badunius/myJSON UPD: Не устроила прежде всего громоздкость, требующая для работы со вложенностью либо заводить орду переменных, либо выстраивать чересчур нечитаемые цепочки. Приведение типов хоть и прогрессивно, но тоже читабельности не добавляет. Я привык работать с JSON в JS, поэтому мне была важна максимальная сходность синтаксиса. Ах да, и главным требованием, конечно, была совместимость с Delphi 7, потому что я всё ещё ею пользуюсь.Ответ 5
В последних версиях Delphi, есть встроенная библиотека JSON
Комментариев нет:
Отправить комментарий