鉴于以下示例 JSON,我们并不总是知道顺序...
{
"contacts": [
{
"id": 287997,
"type": "P",
"relationship": "Mother",
"firstName": "Sara",
"lastName": "Johnson"
},
{
"id": 300982,
"type": "EC",
"relationship": "Aunt",
"firstName": "Janet",
"lastName": "Smith"
},
{
"id": 287200,
"type": "P",
"relationship": "Father",
"firstName": "William",
"lastName": "Johnson"
},
{
"id": 287997,
"type": "EC",
"relationship": "Friend",
"firstName": "Harold",
"lastName": "Johnson"
}
]
}
我想检索“EC”类型的第一个联系人。以下检索所有'EC'类型的联系人就好了......
$.contacts[?(@.type == 'EC')]
但是,我只想要第一个 EC 联系人。我试过了...
$.contacts[?(@.type == 'EC')][0]
但这没有用。我尝试了其他一些变化,但没有运气。如果可能的话,我希望能够在不超出 JSON-Path 方法的情况下实现这一目标。
我知道我可以组合这样的表达......
$.contacts[?(@.type == 'EC' && @.firstName == 'Janet')]
但是,我需要获得与“EC”表达式匹配的第一个联系人。因此,在评估“EC”表达式后,获取第一个过滤的联系人。
我很感激我能得到的任何帮助!谢谢!