trong khi sử dụng JSON Delphi Library bạn phải áp dụng phương pháp mà sau i Để n để thêm các yếu tố JSON con với cha mẹ:
function TlkJSONobject.Add(const aname: WideString; aobj: TlkJSONbase): Integer;
Phương pháp này cho phép các tham số aobj
được đính kèm như một đứa trẻ của một phần tử aname
.
Đoạn code dưới đây cho phép để hoàn thành nhiệm vụ của bạn:
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;
Đây là một cách phù hợp hơn để viết mã trước đó - nhưng ít có thể đọc theo ý kiến của tôi.
Ý tưởng ở đây là tạo các phần tử theo thứ tự mối quan hệ cha-con tự nhiên: trẻ được thêm vào phụ huynh đã chèn bằng cách sử dụng thuộc tính Field
của đối tượng TlkJSONobject
.
Vui lòng lưu ý rằng js.Field['some string']
giống với js['some string']
vì chỉ thị default
được áp dụng cho thuộc tính Field
.
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;
Chạy dự án, nó in:
{
"Users":{
"test_user1":{
"time":"1600",
"Points":4
},
"test_user2":{
"time":"1500",
"Points":3
}
}
}
Trong một trường hợp thực tế, bạn rõ ràng sẽ xem xét để tạo ra các đối tượng và thêm những đứa trẻ sử dụng một số hướng dẫn vòng lặp.
Tài liệu nói gì? –
Bạn có thể làm rõ những gì bạn muốn khác nhau trong của bạn? Nó là từ điển lồng nhau? Ngoài ra, bạn không có dấu phẩy sau '' test_user1 ": {...}' mà bạn có thể sẽ cần. – SuperBiasedMan