使用Gson JSONObject进行JSON解析包含JSON数组列表

时间:2014-08-14 07:11:32

标签: android json parsing gson

如何使用gson库将以下json响应转换为Java对象。 {

"status":"Success",
"result":{
    "VenuereviewDet":[
        {
            "user_profile_imgPath":"",
            "reviewDet_reviewtxt":"New review",
            "reviewDet_reviewsts":"0",
            "reviewDet_name":"jP",
            "reviewDet_reviewdatetime":"Wednesday 23rd of July 2014 07"
        },
        {
            "user_profile_imgPath":"",
            "reviewDet_reviewtxt":"1kjdkgnkdfmgm",
            "reviewDet_reviewsts":"0",
            "reviewDet_name":"sreekanth",
            "reviewDet_reviewdatetime":null
        }
    ],
    "venueimages":[
        {
            "venueimages_thumbimg":"http:\/\/localhost\/app\/images\/videothumb\/JamonJamon_1.jpg",
            "venueimages_image":"http:\/\/localhost\/app\/images\/videothumb\/JamonJamon_1.jpg",
            "venueimages_id":"51",
            "venuedet_id":"10"
        },
        {
            "venueimages_thumbimg":"http:\/\/localhost\/app\/images\/videothumb\/http:\/\/localhost\/app\/images\/videothumb\/JamonJamon_2.jpg",
            "venueimages_image":"http:\/\/localhost\/app\/images\/videothumb\/JamonJamon_2.jpg",
            "venueimages_id":"52",
            "venuedet_id":"10"
        }
    ]
}

}

如何使用gson库将此JSON响应转换为Java对象

2 个答案:

答案 0 :(得分:2)

你需要先完成以下课程

class VenuereviewDet
    {
        String user_profile_imgPath;
        String reviewDet_reviewtxt;
        String reviewDet_reviewsts;
        String reviewDet_name;
        String reviewDet_reviewdatetime;
    }

    class Venueimages
    {
        String venueimages_thumbimg;
        String venueimages_image;
        String venueimages_id;
        String venuedet_id;
    }
    class Data
    {
        ArrayList<VenuereviewDet> VenuereviewDet;
        ArrayList<Venueimages> venueimages;
    }
    class FinalRespone
    {
        String status;
        Data result;
    }

然后

FinalRespone response=gson.fromJson(jsonResponse,FinalRespone.class);

现在让我解释一下。

  • 在您的回复中,有一个名为result的对象。所以你上课时必须有一个类的对象,它可以处理VenuereviewDet和Venueimages的数组。因为这些密钥是以数组形式出现的。

  • 所以FinalResponse是一个里面有状态和数据的类。和Data类有两个成员数据,它们只是某些类的ArrayList的对象。

  • 对于GSON,唯一的问题是创建了很多模型类。你在课堂结构中打破你的反应的那一刻。对你来说很容易。

如果您仍然面临GSON的问题,请告诉我

答案 1 :(得分:0)

使用Google的gson,您可以使用以下代码行将json字符串转换为java对象。

Gson gson = new Gson();

List listObject = gson.fromJson(jsonResponse,ArrayList.class);

YourObject[] objectArray = gson.fromJson(jsonResponse,YourObject[].class);

因为我认为你可能需要“结果”:“成功”你可以拥有这个结构

public class MyObject{

   private String result

   //where you store your VenuereviewDet array and venuimages array
   private ArrayList result;

  //getters setters

}

然后转换为java对象

MyObject objectArray = gson.fromJson(jsonResponse,MyObject.class);