我有一个像这样的json字符串格式:
{
"LIST":{
"Joseph":{
"item1":0,
"item2":0
},
"John":{
"item1":0,
"item2":0
},
"Fred":{
"item1":0,
"item2":0
}
}
}
我需要得到名字,"约瑟夫","约翰","弗雷德"等等...我有一个函数,它会在列表中添加名称,我不知道会添加什么名称,所以我需要获取这些名称。
我只能得到名字" LIST"使用此代码:
js := TlkJSONstreamed.loadfromfile(jsonFile) as TlkJsonObject;
try
ShowMessage( vartostr(js.NameOf[0]) );
finally
s.free;
end;
我在delphi 7中使用lkJSON-1.07
答案 0 :(得分:1)
您可以依次获取名称并获取每个名称的下一个对象。
获取名称:js.NameOf[0]
从名称中获取对象:js[js.NameOf[0]]
getJSONNames
过程以递归方式打印TlkJSONobject
对象中包含的所有名称。
procedure getJSONNames(const Ajs: TlkJSONobject);
var
i: Integer;
begin
if Ajs = nil then
Exit
else
for i := 0 to Ajs.Count-1 do begin
WriteLn(Ajs.NameOf[i]);
getJSONNames(TlkJSONobject(Ajs[Ajs.NameOf[i]]));
end;
end;
var
js: TlkJsonObject;
begin
js := TlkJSONstreamed.loadfromfile(jsonFile) as TlkJsonObject;
try
getJSONNames(js);
finally
js.free;
end;
end.