我有一个如下的JSON:
{
"Content": [{
"Identifier": "AABBCC",
"Description": "test terfdfg",
"GenericProductIdentifier": "AABBCC",
"ProductFamilyDescription": "sampling",
"LifeCycleStatus": "ACTIVE",
"Price": {
"Value": 1.00,
"Quantity": 1000
},
"LeadTimeWeeks": "16",
"FullBoxQty": 200,
}],
"TotalElements": 1,
"TotalPages": 1,
"NumberOfElements": 1,
"First": true,
"Size": 1,
"Number": 0
}
在 Delphi 中,我试图解析它,但无法访问值 包含在“价格”中。
我写了这样的代码:
var
vContent: TJSONArray;
vJson: TJSONObject;
vContentRow: TJSONObject;
i,j : Integer;
begin
Memo2.Lines.Clear;
if Memo1.Text = '' then
exit;
vJson := TJSONObject(TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Memo1.Text),0));
try
vContent := TJSONArray(vJson.Get('Content').JsonValue);
for i := 0 to Pred(vContent.Count) do
begin
vContentRow := TJSONObject(vContent.Items[i]);
for j := 0 to Pred(vContentRow.Count) do
begin
Memo2.Lines.Add(' '+ vContentRow.Get(j).JsonString.Value+' : '+ vContentRow.Get(j).JsonValue.Value);
end;
end;
Memo2.Lines.Add(vContent.Value);
finally
end;
end;
读取值的正确方法是什么 包含在“价格”中?
3条答案
按热度按时间qacovj5a1#
下面是一个解析JSON的示例代码:
注意,您的JSON无效,正确的定义为:
8aqjt8rx2#
可以使用 Delphi 的
JSON library
,JSON库中有JsonToObject class function
,可以直接将字符串转换为Object(对象结构)请参见:https://docwiki.embarcadero.com/Libraries/Sydney/en/REST.Json.TJson.JsonToObject
您可以使用Web手动创建类结构:https://jsontodelphi.com/
创建的JSON的类结构如下所示:
现在,parse元素的代码更加简单了,你只需要像这样的代码就可以访问结构的不同属性:
cedebl8k3#
试试这个,我为TFDMemtable做了一些助手。使用简单,不需要每次你有其他JSON时都解析。
====