Delphi and C++ Builder JavaScript Object Notation (JSON) library

Read and modify existing json files:
var Json: TJson; with TJsonParser.Create do try Json := ParseUtf8File('c:\data.json'); try ShowMessage(Json.ToString); finally Json.Free; end; finally Free; end;
Create new json files:
var MyArray: TJsonArray; MyObject: TJsonObject; with TJsonObject.Create do try SetNull('Null'); SetTrue('True'); SetFalse('False'); SetNumber('Number', 1.23); SetString('String', 'hello'); SetDateTime('DateTime', Now); MyArray := SetArray('Array', 3); MyArray.SetString(0, 'First item'); MyArray.SetString(1, 'Second item'); MyArray.SetNumber(2, 3.21); MyObject := SetObject('Object'); MyObject.SetString('First Member', 'Hello'); MyObject.SetString('Second Member', 'World'); MyObject.SetFalse('Third Member'); MyObject.SetTrue('Fourth Member'); MyObject.SetNumber('Other Member', 1.11); ShowMessage(ToString); ToUtf8File('c:\new.json'); finally Free; end;
Use fast, streaming TJsonWriter to create json file without in-memory overhead of TJson objects:
with TJsonWriter.Create('c:\data.json') do try BeginObject; WriteNull('Null'); Write('True', True); Write('False', False); Write('Number', 1.23); Write('String', 'hello'); Write('DateTime', Now, 0); BeginArray('Array'); Write('First item'); Write('Second item'); Write(3.21); EndArray; BeginObject('Object'); Write('First Member', 'Hello'); Write('Second Member', 'World'); Write('Third Member', False); Write('Fourth Member', True); Write('Other Member', 1.11); EndObject; EndObject; Check; finally Free; end;
Use fast, streaming TJsonReader to read json file without in-memory overhead of TJson objects:
var JsonItem: TJsonItem; Prefix: WideString; with TJsonReader.Create('c:\data.json', True, True) do try repeat JsonItem := Read; if IsMember then Prefix := '"' + MemberName + '" : ' else Prefix := ''; case JsonItem of itNull: ShowMessage(Prefix + 'null'); itFalse: ShowMessage(Prefix + 'false'); itTrue: ShowMessage(Prefix + 'true'); itNumber: ShowMessage(Prefix + FloatToStr(NumberValue)); itString: ShowMessage(Prefix + '"' + StringValue + '"'); itBeginArray: ShowMessage(Prefix + '['); itEndArray: ShowMessage(Prefix + ']'); itBeginObject: ShowMessage(Prefix + '{'); itEndObject: ShowMessage(Prefix + '}'); end; until JsonItem = itEof; finally Free; end;
- full JSON supported: literals, numbers, strings, arrays and objects
- date/time encoding and decoding supported
- customizable output
- provides in-memory and streaming JSON parsers and generators
- supports Windows 32, Windows 64, macOS, iOS and Android
- available for Delphi/C++ Builder 6 - 10.3 and Lazarus 1.8.4
- source code included in registered version
- royalty free distribution in applications
Download and order
Order JSON library $80,- USD (license for one developer)
Order JSON multilicense $240,- USD (license for all developers in company)
Order JSON year upgrades $40,- USD (registered users only)
Order JSON year upgrades multilicense $120,- USD (registered multilicense users only)