【发布时间】:2015-09-12 11:00:13
【问题描述】:
我有一个我正在尝试反序列化的 JSON 日期:
{
"created_at":"2015-05-26 10:14:32"
}
但是,该空间似乎导致 GSON 出现问题,并引发以下错误:
com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:未终止的对象在第 1 行第 160 列路径 $.created_at
com.google.gson.JsonSyntaxException:2015-05-26
原因:java.text.ParseException:无法解析的日期:“2015-05-26”(偏移量 10)
这是我的 GSON 配置:
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
})
.create();
我的模特:
public class MyModel extends ReamlObject {
@SerializedName("created_at")
private Date createdAt = new Date(System.currentTimeMillis());
}
终于
gson.fromJson(json, MyModel.class);
有没有人有任何解决方案允许日期内的空间?我已经尝试过自定义日期反序列化器,但这也没有任何区别。
【问题讨论】:
-
空格不是问题......而且永远不会在引号内或引号外。您发布的是有效的 json。这个问题必须比您发布的内容更多。你能提供这个 json 的上下文吗?
-
抱歉,我忘了提及其他错误消息,这就是我假设空格的原因 - 请查看我的编辑。