JSONPath.eval 参数不能直接用String?必须转成JSONObject?
代码如下:
String s2="{\"k1\":\"v1\",\"k2\":{\"k21\":\"V21\"}}";
String v2 = String.valueOf(JSONPath.eval(JSONObject.parseObject(s2), "$.k1"));
String v21 = String.valueOf(JSONPath.eval(s2, "$.k1"));
System.out.println(v2);
报错信息如下:
com.alibaba.fastjson.JSONPathException: jsonpath error, path $.k1, segement k1
at com.alibaba.fastjson.JSONPath.getPropertyValue(JSONPath.java:2232)
at com.alibaba.fastjson.JSONPath$PropertySegement.eval(JSONPath.java:1346)
at com.alibaba.fastjson.JSONPath.eval(JSONPath.java:83)
at com.alibaba.fastjson.JSONPath.eval(JSONPath.java:364)
1条答案
按热度按时间omtl5h9j1#
必须是object类型,debug进去看下就明白了。