json - 键或值以@字符开头的JSONPath?
问题描述
我正在尝试基于包含 @ 符号的键获取值,但使用 JSONPath 失败。
原因:由于@是当前对象/元素,json不返回值。
样品 1:
{
"firstName": "John",
"lastName" : "doe",
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}
这有效:$.phoneNumbers[1].type
这有效:$.phoneNumbers[?(@.type=="iPhone")].type
样品2:
{
"firstName": "John",
"lastName" : "doe",
"phoneNumbers": [
{
"@type" : "iPhone",
"number": "0123-4567-8888"
},
{
"@type" : "home",
"number": "0123-4567-8910"
}
]
}
这行得通:$.phoneNumbers[1].type
这行不通: $.phoneNumbers[?(@.@type=="iPhone")].type
对于处理包含@
字符的键和值有什么建议吗?
解决方案
这取决于您使用的是哪个 jsonpath 实现。
如果您使用的是JsonPath-Plus,那么您可以尝试以下操作:
$.phoneNumbers[?(@['@type'] == "iPhone")]
您可以在此处在线评估基于JsonPath-Plus
.
推荐阅读
- mongodb - 如何使用两个不同的驱动程序(MongoDB Scala Driver 和 Salat)从 MongoDb 读写
- python - 为 pytorch GAN 塑造 Numpy 数组
- python-3.x - telethon.errors.rpcerrorlist.FloodWaitError:需要等待 41548 秒(由 InviteToChannelRequest 引起)
- flutter - Flutter - 如何为 IconButton 赋予颜色?
- c# - 具有多个命名空间的 XmlChoiceIdentifier
- git - 你的分支和“起源/主人”已经分歧
- python - 无法将小部件绑定到类中的方法
- html - 我无法在带有传单的仪表板屏幕中的导航栏中看到下拉列表
- php - 如何从联系表中获取电子邮件发件人姓名 - Laravel Mail
- python - 是否有使追溯和错误处理更容易的软件包?