我正在尝试将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;
}
}
答案 0 :(得分:2)
问题是JSON元素名称与Java字段名称不匹配,并且没有为Gson提供明确的替代名称映射配置。
可能的解决方案:
将Java字段名称更改为与JSON元素名称完全匹配。这当然不可能,例如,当JSON元素名称包含对Java字段名称无效的字符或格式时。
更改JSON元素名称以与Java字段名称完全匹配。这当然不可能,例如,当JSON来自第三方时。
Provide Gson with name-mappings,使用@SerializedName注释或FieldNamingPolicy。