Gson没有按预期反序列化ArrayList

时间:2013-12-17 19:30:20

标签: java json gson

这是我的Json字符串:

jsonString ="{"Extras":[{"Name":"TEST","Value":"23455676654"}],"CommandCode":1005}" 

这是我的班级

public class ServerMsg {  
    int CommandCode;  
    public List<Extra> extras = new ArrayList<Extra>();  
}

当我编码时:

ServerMsg msg = new ServerMsg();  
Gson gSon = new Gson();
msg = gSon.fromJson(jsonString,Servermsg.class);  

额外列表中没有任何对象。
我编码错误了什么?

1 个答案:

答案 0 :(得分:1)

将名称为Extras的JSON对象更改为extras

{"extras":[{"Name":"TEST","Value":"23455676654"}],"CommandCode":1005}

或者将字段名称从extras更改为Extras

public class ServerMsg {  
    int CommandCode;  
    public List<Extra> Extras = new ArrayList<Extra>();  
}

默认情况下,Gson使用您的字段名称。它们必须匹配嵌套的JSON对象名称。

您应该使用Java命名约定并使用前导小写字符编写变量名称。