Delphi and C++Builder JavaScript Object Notation (JSON) library
- 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, macOS, iOS, Android and Linux
- available for Delphi/C++Builder 6 - 12 and Lazarus 2.2.6
- source code included in registered version
- royalty free distribution in applications
Read json file:
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 file:
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; Prefix := '(' + IntToStr(Row) + ', ' + IntToStr(Column) + '): '; if IsMember then Prefix := Prefix + '"' + MemberName + '" : '; 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;
Download and order
Order JSON library $80 USD (license for one developer)
Order JSON multi-license $240 USD (license for all developers in company)
Order JSON year upgrades $40 USD (registered users only)
Order JSON year upgrades multi-license $120 USD (registered multi-license users only)