我想使用 json 路径来寻址 json 对象中的元素。 Json-path java库提供了这样的设施 [1 ].
String jsonString = "{\"delivery_codes\": [{\"postal_code\": {\"district\": \"Ghaziabad\", \"pin\": 201001, \"pre_paid\": \"Y\", \"cash\": \"Y\", \"pickup\": \"Y\", \"repl\": \"N\", \"cod\": \"Y\", \"is_oda\": \"N\", \"sort_code\": \"GB\", \"state_code\": \"UP\"}}]}";
String jsonExp = "$.delivery_codes";
JsonNode pincodes = JsonPath.read(jsonExp, jsonString, JsonNode.class);
System.out.println("pincodesJson : "+pincodes);
是否可以使用jackson来做到这一点或gson也不要使用 json-path ?
谢谢
最佳答案
您可以尝试 Jackson
JsonNode
的 at
方法,该方法使用 JSON 指针表达式:
例如:
String jsonString = "{\"delivery_codes\": [{\"postal_code\": {\"district\": \"Ghaziabad\", \"pin\": 201001, \"pre_paid\": \"Y\", \"cash\": \"Y\", \"pickup\": \"Y\", \"repl\": \"N\", \"cod\": \"Y\", \"is_oda\": \"N\", \"sort_code\": \"GB\", \"state_code\": \"UP\"}}]}";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(jsonString);
int pincode = node.at("/delivery_codes/0/postal_code/pin").asInt();
关于java - Jackson 和 Gson 中使用 json 路径的地址元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43493391/