正则表达式和JSonPath

时间:2016-10-27 13:53:01

标签: java json regex jsonpath

我尝试使用Jayway JsonPath v2.2.0,但我甚至不确定它是否可行。我找不到任何类似的样本,所以我觉得在浪费太多时间之前最好先问一下。

A具有如下的JSON结构:

{
    "aspectj:aspectjrt:1.5.3:jar": {
        "groupId": "aspectj",
        "artifactId": "aspectjrt",
        "version": "1.5.3",
        "type": "jar",
        "inheritence": 1,
        "scope": "compile",
        "owningArtifacts": [
            "com.xx.yy.aa:ui:1.0.0-SNAPSHOT:jar(T)"
        ]
    },
    "ca.juliusdavies:not-yet-commons-ssl:0.3.11:jar": {
        "groupId": "ca.juliusdavies",
        "artifactId": "not-yet-commons-ssl",
        "version": "0.3.11",
        "type": "jar",
        "inheritence": 1,
        "scope": "compile",
        "owningArtifacts": [
            "com.xx.yy.aa:ui-war:12.47.0-SNAPSHOT:war(D)"
        ]
    },
    "cn.guoyukun.jdbc:oracle-ojdbc6:11.2.0.3.0:jar": {
        "groupId": "cn.guoyukun.jdbc",
        "artifactId": "oracle-ojdbc6",
        "version": "11.2.0.3.0",
        "type": "jar",
        "inheritence": 1,
        "scope": "compile",
        "owningArtifacts": [
            "com.xx.yy.aa:web:1.0.0-SNAPSHOT:jar(D)"
        ]
    }
}

当我使用像下面的

这样的JSonPath表达式时
Object object = JsonPath.read(json, "$.['aspectj:aspectjrt:1.5.3:jar']");

我得到了我想要的东西。

但我也有通配符搜索要求,所以如果用户会搜索 'aspectj:aspectjrt*'它也应该受到欢迎。

有关于第二层元素的正则表达式样本,但我找不到任何关于搜索根元素的信息。

我已经以某种方式创建了一些语句,但它们自然不起作用,如下面的

Object object = JsonPath.read(json, "$[?(@=~/aspectj.*/)]");

有人可以告诉我,我想做什么是可能的,如果是正则表达式应该怎么样?

0 个答案:

没有答案