首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式中以"/“开头的Jayway jsonpath

正则表达式中以"/“开头的Jayway jsonpath
EN

Stack Overflow用户
提问于 2019-09-04 02:36:32
回答 1查看 683关注 0票数 1

当涉及到使用包含xpath的regex时,我遇到了jayway jsonpath的问题。下面是我的json:

代码语言:javascript
复制
{
  "status": "success",
  "resources": [
    {
      "id": "Attachment-20796b26-7a16-4a3d-b53c-b30d9f3cb798.TXT",
      "name": "1996032897__test1.CREDITPRINTFILE",
      "mimeType": "text/plain",
      "url": "https://test.com"
    }
  ]
}

下面是我的表达式: resources?(/__test1.CREDITPRINTFILE/.test(@.name))

我得到以下错误:

代码语言:javascript
复制
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)

我也尝试在在线评估工具中使用相同的表达式:https://jsonpath.herokuapp.com/

Jayway -给出了相同的错误-预期路径节点Gatling,Nebhale - errors out Goessner -给出了有效的结果

我在用最新版本的jayway我想-

代码语言:javascript
复制
<dependency>
  <groupId>com.jayway.jsonpath</groupId>
  <artifactId>json-path</artifactId>
  <version>2.4.0</version>
</dependency>

问:如果jayway不能解决这些类型的表达式,有没有其他的java库可以用来解决这些问题?

EN

回答 1

Stack Overflow用户

发布于 2019-09-04 17:25:44

假设您正在寻找“名称中包含__test1.CREDITPRINTFILE的资源”,jsonpath表达式resources[?(@.name =~ /.*__test1\.CREDITPRINTFILE/)]将适用于Jayway。在https://jsonpath.herokuapp.com/进行了测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57777096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档