complex json to java object conversion using gson

拟墨画扇 提交于 2019-12-13 22:37:39

问题


This is my json need to be converted to Java object. I have tried many method but not got sucess so if any one can provide suggession on this are most welcome!

{
  "id":"100006077890894",
  "posts":{
    "data":[
      {
        "message":"this is my 4th post to test...((((((((((((((((",
        "from":{
          "name":"Sagar Zope",
          "id":"100006077890894"
        },
        "id":"100006077890894_1384558691756714",
        "created_time":"2013-06-12T07:02:52+0000",
        "comments":{
          "data":[
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"4th post 1st comment ..............",
              "id":"1384558691756714_10803"
            },
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"4th post 2nd comment ..............",
              "id":"1384558691756714_10804"
            },
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"4th post 3rd comment ..............",
              "id":"1384558691756714_10805"
            },
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"4th post 4th comment ..............",
              "id":"1384558691756714_10806"
            }
          ]
        }
      },
      {
        "message":"this is the 3rd post .....................:)))))))",
        "from":{
          "name":"Sagar Zope",
          "id":"100006077890894"
        },
        "id":"100006077890894_1384557311756852",
        "created_time":"2013-06-12T07:01:24+0000",
        "comments":{
          "data":[
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"3rd post 1st comment ..............",
              "id":"1384557311756852_10797"
            },
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"3rd post 2nd comment ..............",
              "id":"1384557311756852_10800"
            },
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"3rd post 3rd comment ..............",
              "id":"1384557311756852_10801"
            },
            {
              "from":{
                "name":"Sagar Zope",
                "id":"100006077890894"
              },
              "message":"3rd post 4th comment ..............",
              "id":"1384557311756852_10802"
            }
          ]
        }
      }
    ]
  }
}

回答1:


You need a class structure like this (pseudo-code):

class Response
  String id
  DataList posts

class DataList
  List<Data> data

class Data
  String message
  From from
  String id
  String created_time
  DataList comments

class From
  String name
  String id

Note that you can change class names if you want, but you have to keep the attribute names to match the field names in the JSON response.

Also note that I've used the same class Data to store the data for the posts and for the comments. This is possible because the data for comments is a subset of the data for posts, so when parsing a comment, Gson will just ignore the attributes created_time and comments...

Then parse the JSON with:

Gson gson = new Gson();
Response response = gson.fromJson(yourJsonString, Response.class);

Now you can get the i post with:

String postMessage = response.getPosts().getData().get(i).getMessage();

And in the same way you can get its comments with:

String commentMessage = response.getPosts().getData().get(i).getComments().getData().get(i).getMessage();

NOTE: Using an Online JSON Viewer will help you to clearly see the class structure you need to wrap your JSON data!



来源:https://stackoverflow.com/questions/17064725/complex-json-to-java-object-conversion-using-gson

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!