我有一个类似于此的JSON文件,我试图对它进行解码,但是没有运气:
[
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]使用Delphi2007中的uJson,当数组具有如下名称时,我知道如何提取数据:
{
"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;但是,这个数组没有名字,我已经尝试了几乎所有我能想到的东西,但是这个简单的东西仍然花了我几个小时才弄清楚。
发布于 2019-06-19 20:16:39
在您遇到问题的JSON中,顶级数据是数组,因此需要使用TJSONArray而不是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;https://stackoverflow.com/questions/56674535
复制相似问题