首页 > 其他分享 >学习Delphi原生JSON框架(三)TJsonArray

学习Delphi原生JSON框架(三)TJsonArray

时间:2022-12-10 16:02:54浏览次数:55  
标签:Log Delphi Value GetValue age JSON TJsonArray jva id

基于前面写的内容,我们可以快速读取一个数组的JSON串了,直接上代码:

procedure TForm6.Button2Click(Sender: TObject);
begin
var jsonstr:=
'{' +
' "code": 0,' +
' "msg": "Success",' +
' "check": true,' +
' "datas": [{' +
' "id": 1,' +
' "name": "测试1",' +
' "age": 10' +
' },' +
' {' +
' "id": 2,' +
' "name": "测试2",' +
' "age": 10' +
' },' +
' {' +
' "id": 3,' +
' "name": "测试3",' +
' "age": 10' +
' },' +
' {' +
' "id": 4,' +
' "name": "测试4",' +
' "age": 10' +
' },' +
' {' +
' "id": 5,' +
' "name": "测试5",' +
' "age": 10' +
' }' +
' ],' +
' "time": "2020-12-03 11:19:08"' +
'}';

var jv := TJSONValue.ParseJSONValue(jsonstr);
Log('code=' + jv.GetValue<TJSONValue>('code').Value);
Log('msg=' + jv.GetValue<TJSONValue>('msg').Value);
Log('check=' + jv.GetValue<TJSONBool>('check').Value);
Log('time=' + jv.GetValue<TJSONValue>('time').Value);
var ja := jv.GetValue<TJSONArray>('datas');
var jva: TJSONValue;
for jva in ja do
begin
Log('id=' + jva.GetValue<TJSONValue>('id').Value);
Log('name=' + jva.GetValue<TJSONValue>('name').Value);
Log('age=' + jva.GetValue<TJSONValue>('age').Value);
end;

end;

 

输出结果:

学习Delphi原生JSON框架(三)TJsonArray_数组

通过上面的代码,其核心是基于TJSONValue及TJSONArray对象,就解析了这个JSON串!! 

如果我们将jva转换成一个TJSONObject对象,那么基于TJSONObject对象的GetValue方法,可以改写这样:

var ja := jv.GetValue<TJSONArray>('datas');
var jva: TJSONValue;
for jva in ja do
begin
var jo:=jva as TJSONObject;
Log('id=' + jo.GetValue('id').Value);
Log('name=' + jo.GetValue('name').Value);
Log('age=' + jo.GetValue('age').Value);
end;

这里的jo.GetValue返回TJsonValue对象。喜欢哪种写法,看你了。

 

标签:Log,Delphi,Value,GetValue,age,JSON,TJsonArray,jva,id
From: https://blog.51cto.com/kinglandsoft/5927722

相关文章