java gson解析json数组,使用Gson将Json对象解析为Json数组

I am calling a webservice which gives me a json like this

{

"discussions": [{

"id": 54,

"name": "Test Discusssion",

"discussion": 41,

"created": 1472816138,

"modified": 1472816138,

"subject": "Test Discusssion",

"message": "

Welcome all to test discussion",

}],

"warnings": []

}

But in android I am parsing it as

ArrayList mDiscussions = gson.fromJson(reader,

new TypeToken>() {

}.getType());

And the error I am getting is

java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT

I want to convert the received json into an array how should I ?

Here is the MoodleDiscussion class

public class MoodleDiscussion extends SugarRecord < MoodleDiscussion > {@

SerializedName("id") int discussionid;@

SerializedName("name") String name;@

SerializedName("subject") String subject;

public int getDiscussionid() {

return discussionid;

}

public String getName() {

return name;

}

public int getUserid() {

return userid;

}

public String getSubject() {

return subject;

}

}

解决方案

The list you're trying to parse is contained within a nested json data structure that also needs to be represented in java classes if Gson is to parse it correctly.

You'll need a container class that looks something like this:

public class MoodleDiscussionResponse {

private List discussions;

private List warnings;

public List getDiscussions() {

return discussions;

}

public List getWarnings() {

return warnings;

}

}

Then you should be able to read it like so:

MoodleDiscussionResponse response = gson.fromJson(reader, MoodleDiscussionResponse.class);

List mDiscussions = response.getDiscussions();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值