【发布时间】:2019-10-24 12:39:27
【问题描述】:
我正在使用空手道测试一个 SOAP 网络服务。其中一种方法是根据请求,响应可以返回一个或多个巧合。 在将该 XML 响应转换为 JSON 时,如果只有一个结果,则将其解释为一个对象,但如果有更多,则将其解释为一个数组。
有没有什么方法可以使给定的路径始终作为数组返回?
只有一个匹配的 XML 示例:
<matches>
<product>...</product>
</matches
生成的 JSON 结构:
{
matches: {
product: ...,
}
}
具有多个匹配项的 XML 示例:
<matches>
<product>...</product>
<product>...</product>
<product>...</product>
</matches
生成的 JSON 结构:
{
matches: [
{ product: ... },
{ product: ... },
{ product: ... },
]
}
查看get 的文档,它说:
get 语法支持的一个便利(但不支持 $ 快捷形式)是如果右侧计算结果为类似列表的结果(例如 JSON 数组),则返回单个元素。 这很有用,因为当您在 JsonPath 中使用通配符 [*] 或搜索过滤器(请参阅下一节)时,您会返回一个数组 - 即使您通常只对第一项感兴趣.
但我一直在尝试并没有让它发挥作用。我不知道这是这样做的方法还是有更好/更有效的方法。
【问题讨论】: