繁体   English   中英

使用com.fasterxml.jackson.databind.JsonNode从Java中的json数组解析json对象;

[英]parse json object from json array in java using com.fasterxml.jackson.databind.JsonNode;

我试图解析一些json,它是数组中的一组对象。 我不太熟练使用Java,并且很难弄清楚该怎么做。

    ObjectMapper mapper = new ObjectMapper();
    mapper.setSerializationInclusion(Include.NON_NULL);
    JsonNode messageNode = mapper.readTree(post);

    if (!messageNode.isArray()){
        try {
            throw new Exception("INVALID JSON");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

  ArrayList<String> listObjects = null;
  JsonParser parser = mapper.getFactory().createParser(post);

json格式:

  {
  "data": [
   {
     "id": "897569693587466_897626706915098",
     "from": {
        "id": "1809583315",
        "name": "Lena Cann Jordan"
     },
     "message": "Amen.",
     "can_remove": false,
     "created_time": "2014-11-11T22:41:11+0000",
     "like_count": 0,
     "user_likes": false
    },
    {
     "id": "897569693587466_897627376915031",
     "from": {
        "id": "1776031725",
        "name": "Kyla Munford"
     },
     "message": "Tell me what my God can't do!!!",
     "can_remove": false,
     "created_time": "2014-11-11T22:42:51+0000",
     "like_count": 0,
     "user_likes": false
  },
  {
     "id": "897569693587466_897631636914605",
     "from": {
        "id": "100000106496788",
        "name": "Sarah Barklow Tyson"
     },
     "message": "That's bc God is awesome!! He can give or take away!! \ud83d\ude4f\u2795",
     "can_remove": false,
     "created_time": "2014-11-11T22:49:46+0000",
     "like_count": 0,
     "user_likes": false
  }
  ],
  "paging": {
    "cursors": {
     "after": "WTI5dGJXVnVkRjlqZFhKemIzSTZPRGszTmpVMk1USXdNalExTkRrd09qRTBNVFUzTkRrNU5qTTZOREE9",
     "before": "WTI5dGJXVnVkRjlqZFhKemIzSTZPRGszTmpJMk56QTJPVEUxTURrNE9qRTBNVFUzTkRVMk56RTZNelU9"
  },
  "previous": "some link"
 }
 }

这是来自facebook graph api的json。 我还需要提取下面的光标和链接,以便它们也显示为对象之一。

赞赏的建议。

谢谢

我认为真正的问题是您要实现什么? 您已经将JSON解析为树模型( JsonNode ), JsonNode起,您可以使用getpathat (使用JSON指针表达式)自由遍历内容。

或者,如上面的Samwise所建议的那样,可以考虑使用与JSON相同的结构来对Java类进行建模,这样您就可以更轻松地将数据作为常规Java对象进行访问。 如果是这样,您可以通过以下方式简单地对其进行解析:

Graph graph = mapper.readValue(post);
Data d = graph.getData().get(0); // for first entry in "data" List

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM