[英]getting multi-level json value
在這個 json 中,獲得 object 產品的最佳方式是什么。
通常我會在 json 返回中創建所有對象,直到我發現我想要。 但是現在要直接形式。
Products products = new Products();
JsonOrigin jsonOrigin = getJson();
getJson() = 值 --->
{"content": {
"date": 1467045042000, "id": 228371,
"volume": [
{ "shipment_order_volume_number": "1",
"products": [{"id": 13, "sku": "CPM"},{"id": 14,"sku": "QAA"}]
},
{ "shipment_order_volume_number": "2",
"products": [{"id": 15, "sku": "AAA"},{"id": 16,"sku": "ABC"}]
}
]
}
}
我在我的產品 object 中使用以下值:
[{"id": 13, "sku": "CPM"},{"id": 14,"sku": "QAA"}, {"id": 15, "sku": "AAA"},{"id": 16,"sku": "ABC"}]
你需要有幾個 POJO
class Content {
private long date;
private int id;
private List<ShipmentOrder> volume;
// getters/setters
}
class ShipmentOrder {
@JsonProperty("shipment_order_volume_number")
private int shipmentOrderVolumeNumber;
private List<Product> products;
// getters/setters
}
class Product {
private int id;
private String sku;
// getters/setters
}
如果您需要像示例中所示的那樣收集每個Content
實例的所有產品,則可以實現以下方法:
class Content {
Set<Product> getAllProducts() {
if (null == volume) {
return null;
}
return volume.stream()
.filter (shipment -> shipment.getProducts() != null)
.flatMap(shipment -> shipment.getProducts().stream())
.collect(Collectors.toSet());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.