fastjson JSONPath.eval 参数不能是String ?

gj3fmq9x  于 2021-11-27  发布在  Java
关注(0)|答案(1)|浏览(411)

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)
omtl5h9j

omtl5h9j1#

必须是object类型,debug进去看下就明白了。

相关问题