我尝试使用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.*/)]");
有人可以告诉我,我想做什么是可能的,如果是正则表达式应该怎么样?