Delphi xe使用TJSONObject解析JSON数据

2022-11-30 10:52:00 作者:admin

本文整理自网络,侵删。

 在Delphi 10 Seattle中重写 “ 使用TJSONObject分析JSON数据 ”。由于不推荐使用某些方法,因此已对其进行了更改。
要使用TJSONObject,请添加“ System.JSON”。
uses System.JSON;使用TJSONObject.ParseJSONValue读取JSON数据。
const  Data: string = '{"name": "John Smith", "age": 33}';var  JSONValue: TJSONValue;
JSONValue := TJSONObject.ParseJSONValue(Data);将JSONValue转换为TJSONObject类型。
var  JSONObject: TJSONObject;
JSONObject := JSONValue as TJSONObject;使用Count属性获取存储在JSON对象中的对数。
var  Size: Integer;
Size := JSONObject.Count; // => 2使用Pairs属性获取对。指定参数的索引。当不存在此类元素时,Pairs属性返回nil。
var  JSONPair: TJSONPair;
JSONPair := JSONObject.Pairs[0];使用TJSONPair对象的JsonString属性获取JSON对的名称部分,并使用JsonValue属性获取JSON对的值部分。
var  S, V: string;
S := JSONPair.JsonString.Value; // => nameV := JSONPair.JSONValue.Value; // => John Smith如果不是字符串类型,请根据数据类型进行转换。
将TJSONNumber用于数字类型。
var  SC, VC: string;  NC: TJSONNumber;  Num: Integer;  JSONPair := JSONObject.Pairs[1];
SC := JSONPair.JsonString.ClassName; // => TJSONStringVC := JSONPair.JsonValue.ClassName; // => TJSONNumberV := JSONPair.JsonValue.Value; // => 33
NC := JSONPair.JsonValue as TJSONNumber;Num := NC.AsInt; // => 33对于数组类型,请使用TJSONArray。
const  Data: string = '{"index": 1, "items": ["item 1", "item 2", "item 3"]}';
var  JSONValue: TJSONValue;  JSONObject: TJSONObject;  JSONPair: TJSONPair;  JSONArray: TJSONArray;  S: string;  Size, I: Integer;
begin  JSONValue := TJSONObject.ParseJSONValue(Data);  JSONObject := JSONValue as TJSONObject;  JSONPair := JSONObject.Pairs[1];  S := JSONPair.JsonString.Value; // => items
  JSONArray := JSONPair.JSONValue as TJSONArray;  Size := JSONArray.Count; // => 3
  for I := 0 to Size - 1 do  begin    JSONValue := JSONArray.Items[I];    S := JSONValue.Value;  end;
  // for-inにも???辘筏皮い?  for JSONValue in JSONArray do  begin    S := JSONValue.Value;  end;如果为布尔值,则为TJSONTrue或TJSONFalse。
const  Data: string = '[true, false]';
var  JSONValue: TJSONValue;  JSONArray: TJSONArray;  I: Integer;
begin  JSONValue := TJSONObject.ParseJSONValue(Data);  JSONArray := JSONValue as TJSONArray;
  for I := 0 to JSONArray.Count - 1 do  begin    JSONValue := JSONArray.Items[I];    if JsonValue is TJSONTrue then      // True      WriteLn('True');
    if JsonValue is TJSONFalse then      // False      WriteLn('False');  end;

相关阅读 >>

Delphi 提取时间成分

Delphi 62进制转10进制

Delphi if语法,弹出提示框,不等于写法,判断是否为空

Delphi stringgrid如何清空

Delphi判断exe文件是否正在运行的函数

Delphi 进制转换之10进制与34进制互转

Delphi 多种编码转换

Delphi 在tunimemo中复制和粘贴选定的文本

Delphi 常用函数单元 umyfunctions

Delphi xe vcl - tlinklabel(链接标签)

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话