Delphi xe 10のjsonに対する解析応用

1080 ワード

Json文
{"code":100,"state":"true","data":["hero","npc","pet"]}
参照ユニット
System.JSON

タイプの説明
//    
Root:TJSONObject;
//  
Root:= TJSONObject.ParseJSONValue(Trim(JsonStr)) as TJSONObject;

Jsonオブジェクト数の取得
Root.Count

オブジェクト名と数値を巡回
for i:=0 to Root.count-1 do
begin
   memo1.lines.add(Root.Get(i).JsonString.toString + ' = ' + Root.Get(i).JsonValue.ToString);
end;

結果表示
"code" = 100
"state" = "true"
"data" = {"id":10,"name":"test"}

指定したオブジェクトの内部値の取得
Root.GetValue('data').ToString

配列オブジェクトの取得
  json    
Arr:TJSONArray;
Arr:=TJSONArray(Root.GetValue('data'));
  json  
for i:=0 to Arr.Size - 1 do
begin
  memo1.lines.add(Arr.items[i].value);
end;

注意事項
Json解析では,データ内に指定対象名が存在するか否かは判断できないので,指定対象が存在しないか否かを食べる際にget遍歴を用いてデータを読み取るのが妥当である.