Gson反序列化到java对象不起作用

时间:2014-06-20 10:10:11

标签: java json serialization deserialization gson

JSON字符串是{"status":0}{"status":300}以及Java类

public class MyResponse {
    private Integer status;

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "MyResponse{" +"status=" + status +'}';
    }
}

当status字段为Integer时,对于所有传入值,它将转换为null。当它是int类型时,只有0被正确反序列化。其他值将转换为null。

我错过了什么?

以下是我尝试反序列化的方法

Gson gson = new GsonBuilder()
    .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
    .setPrettyPrinting().create();
gson.fromJson(json.toString(), MyResponse.class);

1 个答案:

答案 0 :(得分:4)

您需要删除setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)

如果你离开它,那么它希望你的班级中的字段被命名为Status,而不是documention中所述的statussomeFieldName ---> SomeFieldName