如何使用JSONPath获取根级JSON对象的键/名称?

时间:2015-06-16 21:06:26

标签: java json jsonpath

所以我一直在使用jayway JSONPath来查询JSON对象,如下所示:

{
  "messageHeader" : {

     "sentBy" : "someOne",
     "userName" : "John Doe"
  },

 "payload" : []
}

这在大多数情况下工作得很好,除了现在我希望使用路径$ .. *选择根级别对象,并根据消息中存在的对象类型预先形成单独的任务,使用它们的键/名称作为标识符。 但是,使用所述路径或$。*将始终生成一个类似于JSONArray:

[{sentBy:someOne,userName:John Doe},[]]

JSON对象似乎是匿名的,它们没有密钥。反正我是否可以直接以字符串形式访问这些对象的密钥?如果数据不存在,那么为什么路径:$ .messageHeader.sentBy,工作?

1 个答案:

答案 0 :(得分:1)

来自JsonPath的README

  

在评估路径时,您需要了解何时的概念   路径是明确的。如果路径包含:

,则路径不确定      
      
  • .. - 深度扫描操作员
  •   
  • ?() - 表达式
  •   
  • [,(,)] - 多个数组索引
  •   
     

无限期路径始终返回列表(由当前JsonProvider表示)。

这可以解释上述现象。