java - Java中的Json : How to extract list of subelements?

标签 java json jackson

如果我有

{
     "took": 4,
     "timed_out": false,
     "hits": {
          "total": 14,
          "max_score": 1,
          "hits": [
             {
                "_index": "someIndex",
                "_source": {
                   "id": "de",
                   "title": "something 1"
                   },
                "_index": "someIndex",
                "_source": {
                   "id": "def",
                   "title": "something 1"
                   }
              }
          ]
    }
}

如何使用简单的 ObjectMapper 方法仅提取源列表?我不想自己处理每个节点。

最佳答案

我想有效的 json 是这样的

{
  "took": 4,
  "timed_out": false,
  "hits": {
    "total": 14,
    "max_score": 1,
    "hits": [
      {
    "_index": "someIndex",
    "_source": {
      "id": "de",
      "title": "something 1"
    }
      },
      {
    "_index": "someIndex",
    "_source": {
      "id": "def",
      "title": "something 1"
    }
      }
    ]
  }
}

如果是这样,你可以得到它

ObjectMapper mapper = new ObjectMapper();
JsonNode data = mapper.readTree(json);
data.findValues("_source"); // [{"id":"de","title":"something 1"}, {"id":"def","title":"something 1"}]
//If you want to convert it to custom object
List<Source> sources = mapper.convertValue(data.findValues("_source"), new TypeReference<List<Source>>() {});

关于java - Java中的Json : How to extract list of subelements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25203429/

相关文章:

java - Web应用程序中的时间戳更改问题

java - Sesame - 初始化存储库时出错 AbstractParserQuery 未找到

java - 如何获取 HTTP 请求数据?

java - 无法从 MAC OSX 上的后台 Java 应用程序复制到剪贴板

javascript - 下面的代码有什么问题?为什么没有显示图表

javascript - 如何在 JavaScript 中从 json 中获取特定数据?

json - 在 Controller 中为每个 RequestMapping 配置不同的 FAIL_ON_UNKNOWN_PROPERTIES

java - ObjectMapper.readValue 可以返回空值吗?

java - jackson 反序列化带有额外字段的 map

java - 无法从 eclipse 获取嵌入式驱动程序