Während der Verwendung von JSON Delphi Library müssen Sie die Methode anwenden, die mich folgt n um Kind JSON Elemente zu ihren Eltern hinzuzufügen:
function TlkJSONobject.Add(const aname: WideString; aobj: TlkJSONbase): Integer;
Das Verfahren erlaubt die aobj
Parameter als Kind eines aname
Element befestigt werden.
Der folgende Code ermöglicht es Ihre Aufgabe zu erfüllen:
var
js0, js1, js2, js22: TlkJSONobject;
s: string;
i: Integer;
begin
js2 := TlkJSONobject.Create;
js2.Add('time', '1600');
js2.Add('Points', 4);
js22 := TlkJSONobject.Create;
js22.Add('time', '1500');
js22.Add('Points', 3);
js1 := TlkJSONobject.Create;
js1.Add('test_user1', js2);
js1.Add('test_user2', js22);
js0 := TlkJSONobject.Create;
js0.Add('Users', js1);
i := 0;
s := GenerateReadableText(js0, i);
WriteLn(s);
js0.Free;
end;
Dies ist ein geeigneter Weg, um den vorherigen Code zu schreiben - aber weniger lesbar meiner Meinung nach.
Die Idee dabei ist, die Elemente in der natürlich Eltern-Kind-Beziehung zu schaffen: die Kinder zu den bereits eingesetzt Eltern hinzugefügt, um die Field
Eigenschaft des Objekts TlkJSONobject
verwenden.
Bitte beachten Sie, dass dasselbe ist wie js['some string']
wegen der default
Richtlinie, die auf die Field
Eigenschaft angewendet wird.
var
js: TlkJSONobject;
s: string;
i: Integer;
begin
js := TlkJSONobject.Create;
try
js.Add('Users', TlkJSONobject.Create);
with TlkJSONobject(js['Users']) do begin
Add('test_user1', TlkJSONobject.Create);
Add('test_user2', TlkJSONobject.Create);
end;
with TlkJSONobject(TlkJSONobject(js['Users'])['test_user1']) do begin
Add('time', '1600');
Add('Points', 4);
end;
with TlkJSONobject(TlkJSONobject(js['Users'])['test_user2']) do begin
Add('time', '1500');
Add('Points', 3);
end;
i := 0;
s := GenerateReadableText(js, i);
WriteLn(s);
finally
js.Free;
end;
end;
das Projekt einsetzen, druckt:
{
"Users":{
"test_user1":{
"time":"1600",
"Points":4
},
"test_user2":{
"time":"1500",
"Points":3
}
}
}
In einem realen Fall, Sie werden natürlich die Objekte erstellen betrachten und hängen Sie die Kinder einige Schleifenanweisung verwenden.
Was sagt die Dokumentation? –
Können Sie klarstellen, was Sie anders in Ihrem wollen? Sind es die verschachtelten Wörterbücher? Außerdem haben Sie kein Komma nach '" test_user1 ": {...}' welches Sie wahrscheinlich benötigen. – SuperBiasedMan