【发布时间】:2017-01-04 18:53:58
【问题描述】:
鉴于 JSON 结构如下:
{
"name":"Some Guy",
"emails":[
{
"description":"primary",
"status":"UNVERIFIED",
"email":"first@first-email.com"
},
{
"description":"home",
"status":"VERIFIED",
"email":"second@second-email.com"
},
{
"description":"away",
"status":"VERIFIED",
"email":"third@third-email.com"
}
]
}
我希望JSONPath expression 获得状态为VERIFIED 的第一个 电子邮件,如果没有,则只获得数组中的第一封电子邮件。因此,对于上面的示例,结果将是second@second-email.com。给定这个例子:
{
"name":"Some Guy",
"emails":[
{
"description":"primary",
"status":"UNVERIFIED",
"email":"first@first-email.com"
},
{
"description":"home",
"status":"UNVERIFIED",
"email":"second@second-email.com"
}
]
}
结果将是first@first-email.com。
这可以通过 JSONPath 表达式实现吗?
【问题讨论】:
-
您使用的是哪个 JSONPath 实现?您需要在一个表达式中执行此操作吗?
-
今天我使用的是 jayway Java 实现,但如果您有其他可行的实现,我可以弄清楚如何集成该实现。我想用一个表达式来做是的,但是如果你有一种方法可以将它表达为一系列表达式,我愿意考虑这一点。它只是不能要求我自己的 Java 或 Javascript 代码来处理中间结果。