字符串中的方括号时 JSONPath 出错
JSONPath getting Error when square brackets inside of string
k最新版本的库 https://github.com/JSONPath-Plus/JSONPath 有问题。
示例:
{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers [1]": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}
现在我想通过
获得“phoneNumbers [1]”
path: $..['phoneNumbers [1]']
这是一个用于测试的演示页面:https://jsonpath-plus.github.io/JSONPath/demo/
由于字符串中的方括号,该方法不起作用。
有谁知道如何解决这个问题。
我有很多 Json 包含带方括号的字符串的对象,所以如果有解决方案不仅针对特定情况。
有没有转义字符的选项来解决问题?
上面的 json 对象只是描述问题的示例代码。
仅使用 JSONPath 时也会出现此问题,因此它不限于该库。
这似乎是 JSONPath-Plus 中的错误。 jsonpath library 可以应付。
const data = JSON.parse(`{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers [1]": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}`);
const result = jsonpath.query(data, "$..['phoneNumbers [1]']");
console.log(result);
<script src="https://unpkg.com/jsonpath@1.1.1/jsonpath.js"></script>
除此之外,您无能为力:
- 改变你的数据结构
- 正在更改您的图书馆
- 提交错误报告
有一个解决方法只能用于 jsonpath-plus
$[?(@property == "phoneNumbers [1]")]
k最新版本的库 https://github.com/JSONPath-Plus/JSONPath 有问题。
示例:
{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers [1]": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}
现在我想通过
获得“phoneNumbers [1]”path: $..['phoneNumbers [1]']
这是一个用于测试的演示页面:https://jsonpath-plus.github.io/JSONPath/demo/
由于字符串中的方括号,该方法不起作用。 有谁知道如何解决这个问题。
我有很多 Json 包含带方括号的字符串的对象,所以如果有解决方案不仅针对特定情况。
有没有转义字符的选项来解决问题? 上面的 json 对象只是描述问题的示例代码。
仅使用 JSONPath 时也会出现此问题,因此它不限于该库。
这似乎是 JSONPath-Plus 中的错误。 jsonpath library 可以应付。
const data = JSON.parse(`{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers [1]": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}`);
const result = jsonpath.query(data, "$..['phoneNumbers [1]']");
console.log(result);
<script src="https://unpkg.com/jsonpath@1.1.1/jsonpath.js"></script>
除此之外,您无能为力:
- 改变你的数据结构
- 正在更改您的图书馆
- 提交错误报告
有一个解决方法只能用于 jsonpath-plus
$[?(@property == "phoneNumbers [1]")]