【java/objectMapper】使用objectMapper解析elasticsearch返回的文本内容


【请求网址】

http://192.168.32.130:9200/moft/emp/_search?pretty

【返回的json】

{
  "took" : 39,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 13,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "111",
        "_score" : 1.0,
        "_source" : {
          "name" : "hy",
          "age" : "25"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "112",
        "_score" : 1.0,
        "_source" : {
          "name" : "巴菲特",
          "age" : "27"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "113",
        "_score" : 1.0,
        "_source" : {
          "name" : "比尔盖茨",
          "age" : "29"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "200",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp0",
          "age" : "20"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "201",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp1",
          "age" : "21"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "202",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp2",
          "age" : "22"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "203",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp3",
          "age" : "23"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "204",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp4",
          "age" : "24"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "205",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp5",
          "age" : "25"
        }
      },
      {
        "_index" : "moft",
        "_type" : "emp",
        "_id" : "206",
        "_score" : 1.0,
        "_source" : {
          "name" : "emp6",
          "age" : "26"
        }
      }
    ]
  }
}

【Code】

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.web.client.RestTemplate;

import java.util.Iterator;

public class Test2 {
    public static void main(String[] args) throws Exception{
        RestTemplate restTemplate = new RestTemplate();
        String json = restTemplate.getForObject("http://192.168.32.130:9200/moft/emp/_search",String.class);

        ObjectMapper mapper = new ObjectMapper();
        // 获取根节点
        JsonNode node = mapper.readTree(json);        
        JsonNode listNode=node.get("hits").path("hits");

        Iterator iterator = listNode.elements();
        while (iterator.hasNext()) {
            JsonNode student = iterator.next();
            // 获取节点文本
            String name=student.get("_source").get("name").asText();
            System.out.println(name);
        }
    }
}

【输出】

hy
巴菲特
比尔盖茨
emp0
emp1
emp2
emp3
emp4
emp5
emp6

END

相关