使用 uJson 解码 json delphi
Decode json using uJson for delphi
我有一个看起来像这样的 JSON 文件,我正在尝试对其进行解码,但没有成功:
[
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]
将 uJson 与 Delphi 2007 一起使用,我知道如何在数组具有如下名称时提取数据:
{
"Names": [
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]
}
var
json: TJSONObject;
Text: String;
i: Integer;
begin
json := TJSONObject.create(jsontext);
for i:=0 to json.getJSONArray('Names').Length -1 do
begin
Text := json.getJSONArray('Names').getJSONObject(i).optString('FirstName');
...
end;
end;
但是,这个数组没有名字,我已经尝试了几乎所有我能想到的方法,但这个简单的东西还是花了我几个小时才弄清楚。
在您遇到问题的 JSON 中,top-level 数据 是 数组,因此您需要使用 [=11= 解析它] 而不是 TJSONObject
.
var
json: TJSONArray;
Text: String;
i: Integer;
begin
json := TJSONArray.create(jsontext);
try
for i := 0 to json.Length-1 do
begin
Text := json.getJSONObject(i).optString('FirstName');
...
end;
finally
json.Free;
end;
end;
我有一个看起来像这样的 JSON 文件,我正在尝试对其进行解码,但没有成功:
[
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]
将 uJson 与 Delphi 2007 一起使用,我知道如何在数组具有如下名称时提取数据:
{
"Names": [
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]
}
var
json: TJSONObject;
Text: String;
i: Integer;
begin
json := TJSONObject.create(jsontext);
for i:=0 to json.getJSONArray('Names').Length -1 do
begin
Text := json.getJSONArray('Names').getJSONObject(i).optString('FirstName');
...
end;
end;
但是,这个数组没有名字,我已经尝试了几乎所有我能想到的方法,但这个简单的东西还是花了我几个小时才弄清楚。
在您遇到问题的 JSON 中,top-level 数据 是 数组,因此您需要使用 [=11= 解析它] 而不是 TJSONObject
.
var
json: TJSONArray;
Text: String;
i: Integer;
begin
json := TJSONArray.create(jsontext);
try
for i := 0 to json.Length-1 do
begin
Text := json.getJSONObject(i).optString('FirstName');
...
end;
finally
json.Free;
end;
end;