所以我一直在使用jayway JSONPath来查询JSON对象,如下所示:
{
"messageHeader" : {
"sentBy" : "someOne",
"userName" : "John Doe"
},
"payload" : []
}
这在大多数情况下工作得很好,除了现在我希望使用路径$ .. *选择根级别对象,并根据消息中存在的对象类型预先形成单独的任务,使用它们的键/名称作为标识符。 但是,使用所述路径或$。*将始终生成一个类似于JSONArray:
[{sentBy:someOne,userName:John Doe},[]]
JSON对象似乎是匿名的,它们没有密钥。反正我是否可以直接以字符串形式访问这些对象的密钥?如果数据不存在,那么为什么路径:$ .messageHeader.sentBy,工作?
答案 0 :(得分:1)
来自JsonPath的README:
在评估路径时,您需要了解何时的概念 路径是明确的。如果路径包含:
,则路径不确定
- .. - 深度扫描操作员
- ?() - 表达式
- [,(,)] - 多个数组索引
无限期路径始终返回列表(由当前JsonProvider表示)。
这可以解释上述现象。