How can I parse the JSON string
{"data":{"results":[{"Branch":"ACCT590003"}]}} using the TJSONObject object? I want to get the ACCT590003 value from this string.
How can I parse the JSON string
{"data":{"results":[{"Branch":"ACCT590003"}]}} using the TJSONObject object? I want to get the ACCT590003 value from this string.
uses SysUtils, DBXJSON; type TProcessJSONString = TProc; 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. Using SuperObject Library https://github.com/hgourvest/superobject/
var json: iSuperObject; data: string; begin json := SO('{"data":{"results":[{"Branch":"ACCT590003"}]}}'); // shorthand // or equal: JSON := TSuperObject.ParseString('{"data":{"results":[{"Branch":"ACCT590003"}]}}'); data := json.S['data.results[0].Branch']; WriteLn('Result is: ', data); end. using TALdocument it's easy
AJsonDoc := TalJsonDocument.create; AjsonDoc.loadFromJsonString('{"data":{"results":[{"Branch":"ACCT590003"}]}}'); writeln(AjsonDoc.childnode['data']['result'][0]['Branch'].text); Try this code, it works fine
uses System.JSON; procedure _Parse_JSonValue; var JSonObject:TJSonObject; JSonValue:TJSonValue; st:string; Branch: string; Begin st := '{"data":{"results":[{"Branch":"ACCT590003"}]}}'; JSonObject := TJSonObject.Create; JsonValue:=JSonObject.ParseJSONValue(st); JsonValue:=(JsonValue as TJSONObject).Get('data').JSONValue; JsonValue:=(JsonValue as TJSONObject).Get('results').JSONValue; if (JSONValue is TJSONArray) then Branch := ((JSONValue as TJSONArray).Items[0] as TJSonObject).Get('Branch').JSONValue.Value; JSonObject.Free; End; Branch = 'ACCT590003'