用gson解析json时转成list部分数据成null

来源:1-1 JSON课程介绍

慕粉2143367527

2016-12-30 11:39

[
    {
        "titlename": "市场调查",
        "desc": "市场用户习惯调查",
        "question": [
            {
                "question1": "问题1.你的性别?",
                "selection1": [
                    "男",
                    "女"
                ]
            },
            {
                "question2": "问题2.你的职业?",
                "selection2": [
                    "在校学生",
                    "政府/机关/公务员",
                    "普通工人",
                    "自由职业者",
                    "商业服务业职工"
                ]
            },
            {
                "question3": "问题3.个人月收入?",
                "selection3": [
                    "在校学生,没有收入",
                    "2000元及以下",
                    "2001-3000元",
                    " 3001-5000元",
                    "5001-8000元"
                ]
            },
            {
                "question4": "问题4.你期待今年圣诞节吗?",
                "selection4": [
                    "很期待",
                    "一般",
                    "不期待",
                    "期待"
                ]
            },
            {
                "question5": "问题5.关于圣诞节的描述,你最认同的一点是?",
                "selection5": [
                    "和朋友狂欢happy的节日",
                    "必须来个温馨家庭大聚餐",
                    "就让我一个人做安静的美男纸或女纸吧",
                    "没兴趣,这个节日与我无关"
                ]
            },
            {
                "question6": "问题6.您是否有在圣诞节送礼物给别人的经历?",
                "selection6": [
                    "有",
                    "无",
                    "没有,但打算送"
                ]
            },
            {
                "question7": "问题7.如果您对圣诞节还有什么想法,请写下来告诉我们吧!",
                "idea": ""
            }
        ]
    }
]

我用

list = new ArrayList<QuestionBean>();

JsonArray array = new JsonParser().parse(jsonString).getAsJsonArray();

for (JsonElement elem : array) {

list.add(new Gson().fromJson(elem, QuestionBean.class));

}

转化时遇到部分数据为null的问题,困扰了好久,输出结果如下

12-30 11:29:40.147: I/System.out(3158): list.size() [Question [question1=问题1.你的性别?, selection1=[男, 女], question2=null, selection2=null, question3=null, selection3=null, question4=null, selection4=null, question5=null, selection5=null, question6=null, selection6=null, question7=null, idea=null], Question [question1=null, selection1=null, question2=问题2.你的职业?, selection2=[在校学生, 政府/机关/公务员, 普通工人, 自由职业者, 商业服务业职工], question3=null, selection3=null, question4=null, selection4=null, question5=null, selection5=null, question6=null, selection6=null, question7=null, idea=null], Question [question1=null, selection1=null, question2=null, selection2=null, question3=问题3.个人月收入?, selection3=[在校学生,没有收入, 2000元及以下, 2001-3000元,  3001-5000元, 5001-8000元], question4=null, selection4=null, question5=null, selection5=null, question6=null, selection6=null, question7=null, idea=null], Question [question1=null, selection1=null, question2=null, selection2=null, question3=null, selection3=null, question4=问题4.你期待今年圣诞节吗?, selection4=[很期待, 一般, 不期待, 期待], question5=null, selection5=null, question6=null, selection6=null, question7=null, idea=null], Question [question1=null, selection1=null, question2=null, selection2=null, question3=null, selection3=null, question4=null, selection4=null, question5=问题5.关于圣诞节的描述,你最认同的一点是?, selection5=[和朋友狂欢happy的节日, 必须来个温馨家庭大聚餐, 就让我一个人做安静的美男纸或女纸吧, 没兴趣,这个节日与我无关], question6=null, selection6=null, question7=null, idea=null], Question [question1=null, selection1=null, question2=null, selection2=null, question3=null, selection3=null, question4=null, selection4=null, question5=null, selection5=null, question6=问题6.您是否有在圣诞节送礼物给别人的经历?, selection6=[有, 无, 没有,但打算送], question7=null, idea=null], Question [question1=null, selection1=null, question2=null, selection2=null, question3=null, selection3=null, question4=null, selection4=null, question5=null, selection5=null, question6=null, selection6=null, question7=问题7.如果您对圣诞节还有什么想法,请写下来告诉我们吧!, idea=]]

bean文件如下

private String titlename;

private String desc;

private List<Question> question;


public void setTitlename(String titlename) {

this.titlename = titlename;

}


public String getTitlename() {

return titlename;

}


public void setDesc(String desc) {

this.desc = desc;

}


public String getDesc() {

return desc;

}


public void setQuestion(List<Question> question) {

this.question = question;

}


public List<Question> getQuestion() {

return question;

}


@Override

public String toString() {

return "QuestionBean [titlename=" + titlename + ", desc=" + desc

+ ", question=" + question + "]";

}


public static class Question implements Serializable {

private String question1;

private List<String> selection1;

public String getQuestion1() {

return question1;

}

public void setQuestion1(String question1) {

this.question1 = question1;

}

public List<String> getSelection1() {

return selection1;

}

public void setSelection1(List<String> selection1) {

this.selection1 = selection1;

}

}

望老师尽快解答

写回答 关注

1回答

  • 慕粉2143367527
    2017-01-03 19:08:59

    搞了一个多星期,才发现json数据question里question和selection的各个都要定义成一样的,不能question1,selection1,question2,selection2

JSON快速入门(Java版)

JSON和GSON的应用,JSON快速入门视频教程,赶快加入吧

102087 学习 · 169 问题

查看课程

相似问题