GSON不会将Json字符串转换为类

时间:2012-08-14 14:39:21

标签: android json gson android-4.0-ice-cream-sandwich

我正在尝试将JSonObject字符串转换为某些特定的类。

MyClass mc= new Gson().fromJson(jo.toString(),MyClass.class);

在此步骤之后,mc的所有值都为空。

jo.toString()的值:

{
  "__type":"MyClass:#MyProject.Model",
  "ID":1,
  "Comment":"First Record",
  "SubClassID":534,
  "Active":true,
  "Date":"\/Date(1323087840000+0200)\/"
}

MyClass.java具有属性ID,注释...

谢谢你...

MyClass.Java:

public class MyClass extends ABase
{
    private String _Comment;
    public String getComment(){
        return _Comment;
    }
    public void setComment(String value){
        _Comment = value;
    }
    private Integer _ID;
    public Integer getID(){
        return _ID;
    }
    public void setID(Integer value){
        _ID = value;
    }
    private java.util.Date _Date;
    public java.util.Date getDate(){
        return _Date;
    }
    public void setDate(java.util.Date value){
        _Date = value;
    }
}

1 个答案:

答案 0 :(得分:2)

问题是JSON元素名称与Java字段名称不匹配,并且没有为Gson提供明确的替代名称映射配置。

可能的解决方案:

  1. 将Java字段名称更改为与JSON元素名称完全匹配。这当然不可能,例如,当JSON元素名称包含对Java字段名称无效的字符或格式时。

  2. 更改JSON元素名称以与Java字段名称完全匹配。这当然不可能,例如,当JSON来自第三方时。

  3. Provide Gson with name-mappings,使用@SerializedName注释或FieldNamingPolicy