我在这里找到了答案,但奇怪的是,没有一种更简单的方法。我使用过的其他几个json库本身支持.NET
json格式。当Gson不处理时,我感到很惊讶。肯定有更好的办法。如果有人知道,请在此处发布。都一样,这是我的解决方案:
我创建了一个自定义JsonDeserializer并将其注册为Date类型。这样,Gson会将我的反序列化器用于Date类型而不是其默认类型。如果要以自定义方式对它进行序列化/反序列化,则可以对其他任何类型执行相同的操作。
public class JsonDateDeserializer implements JsonDeserializer<Date> { public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { String s = json.getAsJsonPrimitive().getAsString(); long l = Long.parseLong(s.substring(6, s.length() - 2)); Date d = new Date(l); return d; } }然后,当我创建我的Gson对象时:
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDateDeserializer()).create();
现在,我的gson对象将能够解析.NET日期格式(自1970年以来为millis)。



