Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用GSON反序列化?_Android_Json_Gson - Fatal编程技术网

Android 如何使用GSON反序列化?

Android 如何使用GSON反序列化?,android,json,gson,Android,Json,Gson,如何在Android中使用GSON从服务器反序列化以下响应? 我想反序列化以下代码,并使用JsonReader将数据存储在java类实例中 { "createTimestamp": "2013-05-23 09:39:41", "firstName": "ABCD", "lastName": "EFGH", "mediaListResponse": [ { "mediaTitle": "Media Title",

如何在Android中使用GSON从服务器反序列化以下响应? 我想反序列化以下代码,并使用JsonReader将数据存储在java类实例中

{
   "createTimestamp": "2013-05-23 09:39:41",
   "firstName": "ABCD",
   "lastName": "EFGH",
   "mediaListResponse":
   [
       {
           "mediaTitle": "Media Title",
           "createTimestamp": null,
           "mediaId": 120,
           "mediaUrl": "/img/mediadata/46/420/1/230.jpg",
           "authenticationKey": null,
           "responseCode": null,
           "responseMessage": null
       },
       {
           "mediaTitle": "Media Title",
           "createTimestamp": null,
           "mediaId": 120,
           "mediaUrl": "/img/mediadata/46/420/1/230.jpg",
           "authenticationKey": null,
           "responseCode": null,
           "responseMessage": null
       }
   ],
   "authenticationKey": null,
   "responseCode": "200",
   "responseMessage": "OK"
}

您可以创建对应于json输入的java对象类,例如

   class YourObject {
    String createTimestamp;
    String firstName;
    String lastName;
    List<MediaListItem> mediaListResponse;
   [...] 
  }

  class MediaListItem {
     String mediaTitle;
     String createTimestamp;
     int mediaId;
     [...]
  }
对于json对象数组:

        Gson gson = new Gson();
        JsonParser parser = new JsonParser();
        JsonArray Jarray = parser.parse(jsonMetaData).getAsJsonArray();
        ArrayList<MyObject> parsedObj = new ArrayList<MyObject>();
        // Add each parsed elements from the Jarray to your object structure
        for (JsonElement obj : Jarray)
        {
            MyObject obj = gson.fromJson(obj, MyObject.class);
            parsedObj.add(obj);
        } 
Gson-Gson=new-Gson();
JsonParser=新的JsonParser();
JsonArray Jarray=parser.parse(jsonMetaData.getAsJsonArray();
ArrayList parsedObj=新的ArrayList();
//将Jarray中的每个已解析元素添加到对象结构中
for(JsonElement对象:Jarray)
{
MyObject obj=gson.fromJson(obj,MyObject.class);
parsedObj.add(obj);
} 

看看我写的这篇博文,其中详细解释了如何使用本机工具和
GSON
库在android中解析
JSON
文件:

在几个简短步骤中:

1。您需要创建一个类来表示您解析的JSON数据

2.设置此类中变量的名称,使其与解析数据的名称相匹配,或使用注释指定正确的名称

3.最后,您将使用如下命令解析数据:

Student student = gson.fromJson(currentStudent.toString(), Student.class);
指南中详细解释了所有这些步骤

祝你好运。

没有理解for(jsonelection obj:Jarray){MyObject obj=gson.fromJson(obj,MyObject.class);parsedObj.add(obj);}部分…………这里的MyObject是什么?好吧,这部分可能对你来说是“多余的”。如果您有一个解析对象数组,它将收集多个对象。看起来您只需要一个对象,所以您的对象obj=gson.fromJson(jsonString,MyObj.class);对你来说已经足够了。我建议您看看gson页面上的示例。当我开始使用GSON时,它帮助了我。如果你愿意,我可以为你发布另一个例子。欢迎:)如果我的答案对你有帮助,请在左边用复选标记解决。
Student student = gson.fromJson(currentStudent.toString(), Student.class);