问题:
现有jsonString={"time":"\\/Date(1294499956278+0800)\\/"},的字符串如何反序列成“3013-09-27”的格式,反之“3013-09-27”又如何序列化成"\\/Date(1294499956278+0800)\\/"这种格式,请给出具体的java方法代码,理论的请绕道。android gsonandroidgson

解决方案 »

  1.   

       private class TimestampTypeAdapter implements JsonSerializer<Timestamp>, JsonDeserializer<Timestamp> {
            private final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        public JsonElement serialize(Timestamp src, Type arg1, JsonSerializationContext arg2) {
                String dateFormatAsString = format.format(new Date(src.getTime()));
                return new JsonPrimitive(dateFormatAsString);
            }        public Timestamp deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
                if (!(json instanceof JsonPrimitive)) {
                    throw new JsonParseException("The date should be a string value");
                }
                try {
                    Date date = format.parse(json.getAsString());
                    return new Timestamp(date.getTime());
                } catch (ParseException e) {
                    throw new JsonParseException(e);
                }
            }
        }
    看到上边的方法了吗deserialize方法是对时间json格式的序列化(及转换为普通时间格式),serialize方法是时间格式字符串的反序列化(及把普通时间格式转换为json格式),懂不,现在要解决的是把{"time":"\\/Date(1294499956278+0800)\\/"}反序列化为成普通时间格式,然后再把序列化成json格式,及求之间的转换方法(代码懂不),
      

  2.   

    纠正这段话:
    看到上边的方法了吗deserialize方法是对时间json格式的反序列化(及转换为普通时间格式),serialize方法是时间格式字符串的序列化(及把普通时间格式转换为json格式),懂不,现在要解决的是把{"time":"\\/Date(1294499956278+0800)\\/"}反序列化为成普通时间格式,然后再把序列化成json格式,及求之间的转换方法(代码懂不),