Naja, wenn es unterschiedliche Strukturen sind, müssen deine Objekte dem logischerweise auch entsprechen. Alternativ kannst du das natürlich auch einfach "zu Fuß" auswerten, wenn das so eine relativ einfache Struktur ist - dann musst du dafür nicht extra ein Objekt anlegen.
Kleines Beispiel-Programm, welches die 40941 aus deinem Beispiel-JSON ausliest:
Delphi-Quellcode:
program jarray;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
System.Classes,
System.JSON,
System.Generics.Collections;
var
strList: TStringList;
jValue: TJSONValue;
jArr: TJSONArray;
begin
try
{ TODO -oUser -cConsole Main : Code hier einfügen }
strList:=TStringList.Create;
strList.LoadFromFile(ParamStr(1));
jValue:=TJSONObject.ParseJSONValue(strList.Text);
if jValue
is TJSONObject
then begin
if TJSONObject(jValue).TryGetValue<TJSONArray>('
allowedPaymentMethodConfigurations',jArr)
then begin
if (jArr.Count>0)
and (jArr.Items[0]
is TJSONNumber)
then
Writeln(TJSONNumber(jArr.Items[0]).Value)
else
writeln('
id not found');
end;
end else
Writeln('
no JSON object');
jValue.Free;
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
end.