我如何解析
JSON字符串
{"data":{"results":[{"Branch":"ACCT590003"}]}}
使用TJSONObject
对象?我想从这个字符串获取ACCT590003的值.
解决方法
uses SysUtils,DBXJSON; type TProcessJSONString = TProc<TJSONString>; procedure DoJSONObject(o: TJSONObject; Process: TProcessJSONString); forward; procedure DoJSONArray(o: TJSONArray; Process: TProcessJSONString); var i: integer; v: TJSONValue; begin for i := 0 to o.Size - 1 do begin v := o.Get(i); if v is TJSONObject then DoJSONObject(v as TJSONObject,Process); end; end; procedure DoJSONObject(o: TJSONObject; Process: TProcessJSONString); var i: integer; p: TJSONPair; begin for i := 0 to o.Size - 1 do begin p := o.Get(i); Process(p.JsonString); if p.JsonValue is TJSONObject then DoJSONObject(p.JsonValue as TJSONObject,Process) else if p.JsonValue is TJSONArray then DoJSONArray(p.JsonValue as TJSONArray,Process) else if p.JsonValue is TJSONString then Process(p.JsonValue as TJSONString); end; end; var o: TJSONObject; begin o := TJSONObject.ParseJSONValue('{"data":{"results":[{"Branch":"ACCT590003"}]}}') as TJSONObject; try DoJSONObject(o,procedure (o: TJSONString) begin WriteLn(o.ToString); end ); finally o.Free; end; ReadLn; end.