我剛開始探索JsonPath。我想探索的不僅僅是可以用它做什麼,而是一些有效的策略。例如,假設我必須迭代json字符串中一個元素中包含的數組。迭代通過JsonPath數組的策略
我使用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對象,但它有效地傳達了泛型類型信息。 –