WINSOFT components and applications

JSON library

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

JSON
Reads a 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;
Creates a 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;
Utilizes TJsonWriter for efficient, streaming JSON file creation:
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;
Utilizes TJsonReader for efficient, streaming JSON file reading:
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 JSON 5.4 trial version
Download JSON Generator utility
Download demo example
Download macOS demo example
Download Android demo example
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)
Order Winsoft Component Package

Useful Links

Icon Super Fast JSON Processing In Delphi With Winsoft.sk JSON Library
JSON And CSV Components For Delphi XE5 Firemonkey On Android And IOS

Icon Introducing JSON
Icon JSON Example
Icon JSONLint - The JSON Validator
Icon RFC 3339 - Date and Time on the Internet: Timestamps
Icon RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format