Java 获取多级json值
在这个json中,获取对象产品的最佳方式是什么 通常,我会在json返回中创建所有对象,直到找到我想要的。但现在什么都不是直接形式Java 获取多级json值,java,json,object,lambda,Java,Json,Object,Lambda,在这个json中,获取对象产品的最佳方式是什么 通常,我会在json返回中创建所有对象,直到找到我想要的。但现在什么都不是直接形式 Products products = new Products(); JsonOrigin jsonOrigin = getJson(); getJson=值--> {"content": { "date": 1467045042000, "id": 228371, "volume": [ { "shipment_order_vol
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"}]
}
]
}
}
我在我的产品对象中使用以下值:
[{"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
}
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());
}
}