Android 如何使用GSON反序列化?
如何在Android中使用GSON从服务器反序列化以下响应? 我想反序列化以下代码,并使用JsonReader将数据存储在java类实例中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",
{
"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);