java - 使用 JsonPath 在不知道键的情况下提取值

标签 java json jsonpath

我有一个像这样的 json 字符串:

  "files": {
     "fileA.c": {
         "size": 100
     },
     "fileB.txt": {
         "size": 200
     }
  }

我想使用 JsonPath 提取文件名 {"fileA.c","fileB.txt"} 。请注意,文件数量未知。

问题是,我不知道文件名是键还是值:

  • 如果它是一个 key ...那么我当然不知道 key 名称,因为这是我想要提取的信息。
  • 如果它是一个值,那么它的键是什么?
  • 我可以使用 JsonPath 提取文件名吗?如果是这样,怎么办?
  • 如果 JsonPath 无法做到这一点,是否有 Json 的 Java 库可以实现这一点?

最佳答案

在您的示例中,fileA.c 和 fileB.txt 是键,您可以通过迭代封闭对象(由键“files”引用)中的键来获取它们。

我认为 JSONPath 在这种情况下并不真正合适(甚至适用),它旨在当您知道文档的结构时访问元素,这意味着您基本上知道键。简单地使用 JSON 解析器会容易得多。

关于java - 使用 JsonPath 在不知道键的情况下提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22043030/

相关文章:

java - 使用 Java 中的 JsonPath 解析 JSON 中的数组

java - 如何通过 Jayway JsonPath 将带有嵌套列表的 json 展平?

java - 您可以使用 HIbernate 获取类型 LAZY 但有时使用 EAGER

json - 将通用 JSON 对象解码为多种格式之一

json - 如何向每个 header 添加 json 网络 token ?

php - 使用 jQuery Mobile 和 Phonegap 加载 JSON?

javascript - 在 Postman 中导入外部库

java - 测试我的排序功能

java - BasicHttpParams - 添加日期格式(ClassCastException)

java - 列出远程机器上 jndi 中所有条目的代码