com.google.gson.JsonSyntaxException: java.text.ParseException: Unparseable date: “2015-05-20”
这个是Gson中发现的Bug,再次掉坑,拿出来记录一下,希望对大家有帮助。
//正常在Bean中定义时间字段
@SerializedName("op_datetime")
private Data opDatetime;
//我们的json格式
{
"data": [
{
"name": "丽丽",
"sex": "女",
"apply_date": "2015-05-20"
}
]
}
解决方案:
//把时间字段Data类型的写成String类型,剩下的自己在代码中转换
@SerializedName("op_datetime")
private String opDatetime;
Json转换工具:
public static Bean objectFromData(String str) {
return new Gson().fromJson(str, Bean.class);
}
public static Bean objectFromData(String str, String key) {
try {
JSONObject jsonObject = new JSONObject(str);
return new Gson().fromJson(jsonObject.getString(str), Bean.class);
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
public static List<Bean> arrayInfoFromData(String str) {
Type listType = new TypeToken<ArrayList<Bean>>() {
}.getType();
return new Gson().fromJson(str, listType);
}
public static List<Bean> arrayInfoFromData(String str, String key) {
try {
JSONObject jsonObject = new JSONObject(str);
Type listType = new TypeToken<ArrayList<Bean>>() {}.getType();
return new Gson().fromJson(jsonObject.get(key).toString(), listType);
} catch (JSONException e) {
e.printStackTrace();
}
return new ArrayList<Bean>();
}
//类中使用
Bean.arrayInfoFromData(obj,"data");
Bean.arrayInfoFromData(obj);