java - Jackson 和 Gson 中使用 json 路径的地址元素

标签 java json jackson gson jsonpath

我想使用 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 JsonNodeat 方法,该方法使用 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/

相关文章:

java - 在循环中添加按钮处理程序

java - 使用各种键作为值反序列化 json

java - 使用类字段中指定的自定义反序列化器反序列化字符串

java - Jackson xml 和 json 根元素

javascript - 将对象从sql转换为json数据

java - java Builder 类中的附加方法(lombok 注解)

java - 需要打印与我使用冒泡排序排序的数组平行的数组的值

Java更新SQL数据库SQL报错?

java - jsp中通过ajax获取json对象

mysql - 蛋糕 3 : column of type JSON stores a NULL as string "null"