简体   繁体   中英

Extract Values from key and array on JSON begins with '['

Sorry , I searched here for This problem on the site But the Json I have is unlike any other here on the site Because it begins with '['

and I got tired trying to extract the values Then how I can Extract Values from key and array on JSON begins with '['

[{"date":"12/11/1990","name":"Delphi7"},{"date":"03/05/2012","name":"Delphi 10.4"}]

Or extract Form This:

[{"User":{"date":"12/11/1990","name":"Delphi7"}},{"User":{"date":"03/05/2012","name":"Delphi 10.4"}}]

In JSON, [] denotes an array . In this case, both examples you have provided represent an array of objects.

If you parse these strings using TJSONObject.ParseJSONValue() , it will return a TJSONValue pointer to a TJSONArray object that is holding TJSONObject elements, eg:

uses
  ..., System.JSON;

var
  JSONStr, DateStr, NameStr: string;
  JSONVal: TJSONValue;
  JSONArr: TJSONArray;
  JSONObj: TJSONObject;
  I: Integer;
begin
  JSONStr := '[{"date":"12/11/1990","name":"Delphi7"},{"date":"03/05/2012","name":"Delphi 10.4"}]';
  JSONVal := TJSONObject.ParseJSONValue(JSONStr);
  try
    JSONArr := JSONVal as TJSONArray;
    for I := 0 to JSONArr.Count-1 do
    begin
      JSONObj := JSONArr[I] as TJSONObject;
      DateStr := JSONObj.GetValue('date').Value;
      NameStr := JSONObj.GetValue('name').Value;
      ...
    end;
  finally
    JSONVal.Free;
  end;
end;
uses
  ..., System.JSON;

var
  JSONStr, DateStr, NameStr: string;
  JSONVal: TJSONValue;
  JSONArr: TJSONArray;
  JSONObj, JSONUser: TJSONObject;
  I: Integer;
begin
  JSONStr := '[{"User":{"date":"12/11/1990","name":"Delphi7"}},{"User":{"date":"03/05/2012","name":"Delphi 10.4"}}]';
  JSONVal := TJSONObject.ParseJSONValue(JSONStr);
  try
    JSONArr := JSONVal as TJSONArray;
    for I := 0 to JSONArr.Count-1 do
    begin
      JSONObj := JSONArr[I] as TJSONObject;
      JSONUser := JSONObj.GetValue('User') as TJSONObject;
      DateStr := JSONUser.GetValue('date').Value;
      NameStr := JSONUser.GetValue('name').Value;
      ...
    end;
  finally
    JSONVal.Free;
  end;
end;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM