1、引入依赖
<dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> </dependency>2、使用
String method = JsonPath.read(shippingJson, "$[0].Package.Method"); Integer weight = JsonPath.read(shippingJson, "$[0].Package.Weight.Value"); Integer length = JsonPath.read(shippingDetails, "$[0].Package.Dimensions.Length");为防止字段不存在解析报错,开始解析前增加下面的配置:
Configuration conf = Configuration.defaultConfiguration() .addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL);如果有多个Package包裹,可以这样直接取全部:
List<Integer> lengths = JsonPath.read(json, "$[*].Package.Dimensions.Length");附JSON数据:
"ShippingDetails": [
{
"Package": {
"Method": "USP",
"Weight": {
"Value": 10,
"Unit": "OZ"
},
"Dimensions": {
"Length": 2,
"Width": 2,
"Depth": 2,
"Unit": "IN"
},
"IdenticalPackageCount": 1,
"Type": {
"PackageType": 0
},
"Reference": "[x20]",
"InsuranceValue": 0,
"InsuranceFee": 0,
"Postage": 0,
"TrackingInfo": {
"TrackingNumber": "",
"CarrierName": ""
}
}
}
]