Я новичок в JSON, и у меня есть этот проект на моих руках, который требует от меня разобрать JSON и отобразить некоторые его содержимое в ListView. Проблема в том, что документация, которую я читал к настоящему времени, касается объектов JSON, содержащих массивы JSON, в то время как в моем случае речь идет о работе с вложенными объектами. Короче говоря, вот резюме: Я использую Delphi XE2 с DBXJSON. Я отправляю некоторые значения на сервер и отвечает на объект JSON, который выглядит следующим образом:
{
"products": {
"Men Sneakers": {
"instock": false,
"size": "423",
"manufacturer": "Adidas",
"lastcheck": "20120529"
},
"Purse": {
"instock": true,
"size": "not applicable",
"manufacturer": "Prada",
"lastcheck": "20120528"
},
"Men Hood": {
"instock": false,
"size": "M",
"manufacturer": "Generic",
"lastcheck": "20120529"
}
},
"total": 41,
"available": 30
}
То, что я хотел достичь, состояло в том, чтобы проанализировать каждый элемент (например, кошелек) и добавить в виде заголовка в виде списка вместе с одним подэлементом (изготовителем). Я создал процедуру, которая принимает строку JSON в качестве аргумента, создала объект JSON, но я не знаю, как дальше разбирать вложенные объекты.
procedure TForm1.ParseString(const AString: string);
var
json : TJSONObject;
jPair : TJSONPair;
jValue : TJSONValue;
jcValue : TJSONValue;
l,i : Integer;
begin
json := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(AString),0) as TJSONObject;
try
//get the pair to evaluate in this case the index is 1
jPair := json.Get(1);
{further process the nested objects and adding them to the listview}
finally
json.Free;
end;
end;
Любые предложения будут высоко оценены. Потеряли некоторое время, пытаясь получить все возможности JSON в Delphi безрезультатно.
Спасибо, сфинкс