Java Jayway jsonpath以“开始”/&引用;正则表达式

Java Jayway jsonpath以“开始”/&引用;正则表达式,java,jsonpath,jayway,Java,Jsonpath,Jayway,在使用带有xpath的正则表达式时,我对jayway jsonpath有一些问题。这是我的json: { "status": "success", "resources": [ { "id": "Attachment-20796b26-7a16-4a3d-b53c-b30d9f3cb798.TXT", "name": "1996032897__test1.CREDITPRINTFILE", "mimeType": "text/plain",

在使用带有xpath的正则表达式时,我对jayway jsonpath有一些问题。这是我的json:

{
  "status": "success",
  "resources": [
    {
      "id": "Attachment-20796b26-7a16-4a3d-b53c-b30d9f3cb798.TXT",
      "name": "1996032897__test1.CREDITPRINTFILE",
      "mimeType": "text/plain",
      "url": "https://test.com"
    }
  ]
}
以下是我的表达: 资源[?(/\uu test1.CREDITPRINTFILE/.test(@.name))]

我得到以下错误:

Exception in thread "main" com.jayway.jsonpath.InvalidPathException: Expected path node
    at com.jayway.jsonpath.internal.filter.ValueNode.asPathNode(ValueNode.java:53)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readExpression(FilterCompiler.java:204)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalANDOperand(FilterCompiler.java:189)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalAND(FilterCompiler.java:151)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalOR(FilterCompiler.java:131)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalANDOperand(FilterCompiler.java:184)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalAND(FilterCompiler.java:151)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalOR(FilterCompiler.java:131)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.compile(FilterCompiler.java:77)
    at com.jayway.jsonpath.internal.filter.FilterCompiler.compile(FilterCompiler.java:53)
    at com.jayway.jsonpath.internal.path.PathCompiler.readFilterToken(PathCompiler.java:461)
    at com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:141)
    at com.jayway.jsonpath.internal.path.PathCompiler.readPropertyOrFunctionToken(PathCompiler.java:237)
    at com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:151)
    at com.jayway.jsonpath.internal.path.PathCompiler.readDotToken(PathCompiler.java:171)
    at com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:145)
    at com.jayway.jsonpath.internal.path.PathCompiler.readContextToken(PathCompiler.java:124)
    at com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:58)
    at com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:75)
    at com.jayway.jsonpath.JsonPath.<init>(JsonPath.java:101)
    at com.jayway.jsonpath.JsonPath.compile(JsonPath.java:467)
    at com.jayway.jsonpath.internal.JsonContext.read(JsonContext.java:87)
    at daniel.TestJsonPath.main(TestJsonPath.java:72)
线程“main”com.jayway.jsonpath.InvalidPathException中的异常:预期的路径节点 位于com.jayway.jsonpath.internal.filter.ValueNode.asPathNode(ValueNode.java:53) 在com.jayway.jsonpath.internal.filter.FilterCompiler.readExpression(FilterCompiler.java:204)上 在com.jayway.jsonpath.internal.filter.FilterCompiler.ReadLogicalAndOrand(FilterCompiler.java:189)上 在com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalAND(FilterCompiler.java:151)上 在com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalOR(FilterCompiler.java:131)上 在com.jayway.jsonpath.internal.filter.FilterCompiler.ReadLogicalAndOrand(FilterCompiler.java:184)上 在com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalAND(FilterCompiler.java:151)上 在com.jayway.jsonpath.internal.filter.FilterCompiler.readLogicalOR(FilterCompiler.java:131)上 位于com.jayway.jsonpath.internal.filter.FilterCompiler.compile(FilterCompiler.java:77) 位于com.jayway.jsonpath.internal.filter.FilterCompiler.compile(FilterCompiler.java:53) 位于com.jayway.jsonpath.internal.path.PathCompiler.readFilterToken(PathCompiler.java:461) 在com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:141)上 位于com.jayway.jsonpath.internal.path.PathCompiler.readPropertyOrFunctionToken(PathCompiler.java:237) 在com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:151)上 位于com.jayway.jsonpath.internal.path.PathCompiler.readDotToken(PathCompiler.java:171) 在com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:145)上 位于com.jayway.jsonpath.internal.path.PathCompiler.readContextToken(PathCompiler.java:124) 在com.jayway.jsonpath.internal.path.pathcomiler.compile(pathcomiler.java:58)上 位于com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:75) 在com.jayway.jsonpath.jsonpath.(jsonpath.java:101) 位于com.jayway.jsonpath.jsonpath.compile(jsonpath.java:467) 位于com.jayway.jsonpath.internal.JsonContext.read(JsonContext.java:87) 位于daniel.TestJsonPath.main(TestJsonPath.java:72) 我也尝试在在线评估工具中使用相同的表达式:

Jayway-给出相同的错误-预期路径节点 盖特林,内布拉-失误出局 戈斯纳给了我一个有效的结果

我使用的是最新版本的jayway我想-

<dependency>
  <groupId>com.jayway.jsonpath</groupId>
  <artifactId>json-path</artifactId>
  <version>2.4.0</version>
</dependency>

com.jayway.jsonpath
json路径
2.4.0

问题:如果jayway无法解决这类表达式,是否有其他java库可用于解决这些问题?

假设您正在查找“名称包含
\uu test1.CREDITPRINTFILE的资源”,jsonpath表达式
resources[?(@.name=~/.\uu test1\.CREDITPRINTFILE/)]
将与Jayway一起使用。测试时间