我有一个JSON响应,其中一个键值包含"-“、”“以及其中的空间。我能够正确地解析它,但现在它似乎无法工作。
对于复制,我们可以使用http://jsonpath.com/
JSON:
{
"data":{
"ID":"123",
"paraValues":{
"DE:is this A": "Yes",
"DE:is this B": "No",
"DE:Is project part of a multi-piece initiative - campaign, event?" : "No"
}
}
}我正在尝试获取这个键的值:"DE:Is project part of a multi-piece initiative - campaign, event"
我正在使用:
$.data.paraValues.DE:Is project part of a multi-piece initiative - campaign, event?它没有起作用。
然后我读了一些答案后说:
$.data.paraValues.["DE:Is project part of a multi-piece initiative - campaign, event?"]这也没用。
Update:来自java的用户可以通过升级jsonpath库来解决问题。
我添加了下面的库,它解决了这个问题:
<!-- https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path -->
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.7.0</version>
</dependency>注意:在http://jsonpath.com/中,访问它仍然失败。
发布于 2022-03-31 09:57:48
这似乎是jsonpath-plus中的一个bug,由jsonpath.com使用。
如果我切换到jsonpath模块,那么它就能工作(如果您删除了额外的.)。
const data = JSON.parse(`{
"data":{
"ID":"123",
"paraValues":{
"DE:is this A": "Yes",
"DE:is this B": "No",
"DE:Is project part of a multi-piece initiative - campaign, event?" : "No"
}
}
}`);
const result = jsonpath.query(
data,
'$.data.paraValues["DE:Is project part of a multi-piece initiative - campaign, event?"]'
);
console.log(result);<script src="https://unpkg.com/jsonpath@1.1.1/jsonpath.js"></script>
https://stackoverflow.com/questions/71689867
复制相似问题