Delphi json数组没有括号


{
"code": 0,
"data": {
"KAVAUSDT": {
"name": "KAVAUSDT",
"min_amount": "0.5",
"maker_fee_rate": "0.003",
"taker_fee_rate": "0.003",
"pricing_name": "USDT",
"pricing_decimal": 4,
"trading_name": "KAVA",
"trading_decimal": 8
},
"CFXUSDT": {
"name": "CFXUSDT",
"min_amount": "5",
"maker_fee_rate": "0.003",
"taker_fee_rate": "0.003",
"pricing_name": "USDT",
"pricing_decimal": 6,
"trading_name": "CFX",
"trading_decimal": 8
},
... continue 
}
}

如果有[]符号,我可以用TJsonArray快速解决:

...
JsonArray := JsonValue.GetValue<TJSONArray>('data');
for ArrayElement in JsonArray do
begin
tempName           := ArrayElement.GetValue<String>('name');
tempPricingName    := ArrayElement.GetValue<String>('pricing_name');   
...
end;

此Json类型中没有[]符号。

没有[]符号,我无法访问数据,因为它使用for循环。

有一个简单的解决方案吗?

您所显示的JSON文档中没有数组。"KAVAUSDT","CFXUSDT"等不是数组元素,它们只是"data"对象的简单命名对象字段。如果需要遍历"data"对象的子字段,则可以使用TJSONObject(而不是TJSONArray!),例如:

...
JsonObj := JsonValue.GetValue<TJSONObject>('data');
for Field in JsonObj do
begin
FieldObj           := Field.JsonValue as TJSONObject;
tempName           := FieldObj.GetValue<String>('name');
tempPricingName    := FieldObj.GetValue<String>('pricing_name');   
...
end;

相关内容

  • 没有找到相关文章

最新更新