Danke. Der Link von Klaus hat sehr weitergeholfen.
Code:
JsonValue.GetValue<string>
Die Art der Typdeklaration kenne ich nicht. (
<string>)
Wie sah das früher für diesen Fall aus, bevor es diese Art der Zuweisung gab?
Und eine zweite Frage.
Ein Problem mit Arrays habe ich noch. Der JSON Node für diverse Items könnte ein Array sei, so wie es bei Authors ist. Wäre es da nicht gleich einfacher, ich würde generell alle Werte in ein Array einlesen und dieses dann auswerten, auch wenn es nur ein einzelner String ist (wie bei title)?
Doch wie kann ich das Array direkt einlesen - Array of String funktioniert nicht bei der Typdeklaration.
Mein Code sieht nun für Tests wie folgt aus.
Code:
var
JSonValue : TJSonValue;
items : string;
Authors: TStrings;
begin
Memo2.Clear;
JSonValue := TJSonObject.ParseJSONValue( Memo1.Text );
items := JSonValue.GetValue< string >( 'items[0].volumeInfo.title' );
Memo2.Lines.Add( items );
Authors := JSonValue.GetValue< TStrings >( 'items[0].volumeInfo.authors' );
Memo2.Lines.AddStrings( Authors );
items := JSonValue.GetValue< string >( 'items[0].volumeInfo.publishedDate' );
Memo2.Lines.Add( items );
JSonValue.Free;
end;
In der Zeile Authors := erfolgt eine
Exception bezüglich Typumwandlung.