私はJsonPathの探索を始めました。私はそれでできることだけでなく、効果的な戦略を探求したいと思っています。JsonPathの配列を反復するための戦略
たとえば、json文字列内の1つの要素に含まれる配列を反復処理する必要があるとします。
https://github.com/jayway/JsonPath#path-examplesの「店舗」の例を使用しています。図書のリスト自体を取得するには
、私はこのような何かを行うことができます想像:
List<?> allBooks = JsonPath.<List<?>>read(context, "$.store.book");
それはそれについてこのように考えるのは理にかなっていますか?
これを反復して私が不確かなのは論理です。
私は「ブック」POJOを定義し、このような何かを行うことができると思っているだろう:
for (int ctr = 0; ctr < allBooks.size(); ++ ctr) {
Book book = JsonPath.<Book>read(context, ".[" + ctr + "]");
System.out.println("book[" + book + "]");
}
しかし、これは動作しません。この時点の "read
"メソッドは、JSONArray
を返します。
コードサンプルの最後の行はhttps://github.com/jayway/JsonPath#what-is-returned-whenに近いですが、これはすべての繰り返しでjsonを解析する必要があります。 「DocumentContext
」クラスには、タイプパラメータを取ることができる「read
」メソッドがありますが、「JsonPath
」はありません。
このようなナビゲートにはどのような戦略が適していますか?
これは問題なく動作しますが、JsonPath(https://github.com/jayway/JsonPath)のメインのドキュメントページでTypeRefについて言及していません。私はTypeRefの使用を推測するのはClassオブジェクトのようなものですが、それはジェネリックな型情報を効果的に伝達します。 –