Open cloudminditc opened 5 years ago
fastjson可以解析的表达式: $.data.records[?(@.name=='asr_t1')].operatorId 解析出错的表达式: String par="$...records[?(@.name=='asr_t1')].operatorId";
三个点就是不支持的啊
@wenshao 这个还有详细的解决方案么 我目前是用$.data.records[?(@.name=='asr_t1')].operatorId 还有其他相对方式写法获取38ba5660-ef6e-4b66-9673-b0236832f179 也就是 "operatorId": "38ba5660-ef6e-4b66-9673-b0236832f179" 但是看其他站点的解析: http://jsonpath.com/ https://jsonpath.curiousconcept.com/ https://codebeautify.org/jsonpath-tester https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/json-path-expressions.html#GUID-2DC05D71-3D62-4A14-855F-76E054032494
String par="$..records[?(@.name=='asr_t1')].operatorId";
把三个点变成两个点就好了
构造如下参数
报错信息如下: Exception in thread "main" com.alibaba.fastjson.JSONPathException: illeal jsonpath syntax. $...records[?(@.name=='asr_t1')].operatorId at com.alibaba.fastjson.JSONPath$JSONPathParser.readName(JSONPath.java:1572) at com.alibaba.fastjson.JSONPath$JSONPathParser.readSegement(JSONPath.java:728) at com.alibaba.fastjson.JSONPath$JSONPathParser.explain(JSONPath.java:1636) at com.alibaba.fastjson.JSONPath.init(JSONPath.java:61) at com.alibaba.fastjson.JSONPath.eval(JSONPath.java:71) at com.alibaba.fastjson.JSONPath.eval(JSONPath.java:452) at operationID.main(operationID.java:19)