Skip to content

Instantly share code, notes, and snippets.

@JensMertelmeyer
Created January 3, 2019 15:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JensMertelmeyer/65217fef8296015e369f250278443f64 to your computer and use it in GitHub Desktop.
Save JensMertelmeyer/65217fef8296015e369f250278443f64 to your computer and use it in GitHub Desktop.
json object builder & arrays
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
System.Classes,
System.JSON,
System.JSON.Builders,
System.JSON.Writers;
procedure buildObject(const builder: TJSONObjectBuilder);
const
values: TArray<Single> = [3.14, -99, 0, 12, 17];
var
jsonObject: TJSONObjectBuilderPairs;
jsonArray: TJSONArrayBuilderElements;
value: Single;
begin
jsonObject := builder.BeginObject();
jsonArray := jsonObject
.Add('text', 'Hello World')
.Add('someNumber', 42)
.BeginArray('values');
for value in values do
jsonArray.Add(value);
jsonArray.EndArray();
jsonObject
.Add('some final text', 'this was added after the array')
.EndObject();
end;
procedure p();
var
textwriter: TStringWriter;
jsonObjectBuilder: TJSONObjectBuilder;
jsonObjectWriter: TJsonTextWriter;
begin
textwriter := nil; jsonObjectWriter := nil; jsonObjectBuilder := nil;
try
textWriter := TStringWriter.Create();
jsonObjectWriter := TJsonTextWriter.Create(textwriter);
jsonObjectBuilder := TJSONObjectBuilder.Create(jsonObjectWriter);
buildObject(jsonObjectBuilder);
Write('Result: ');
WriteLn(textwriter.ToString());
finally
jsonObjectBuilder.Free();
jsonObjectWriter.Free();
textwriter.Free();
end;
end;
begin
try
p();
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
WriteLn(sLineBreak, 'end.'); ReadLn;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment