1

我有一个名为 DateTime 的自定义对象。我使用方法 registerTypeAdapter 注册 TypeAdapter 。我认为 GSON 忽略了这个适配器。GSON如何检测json对象中的日期?是否需要在 json 中的适配器和字符串格式之间建立任何链接?

   builder.registerTypeAdapter(DateTime.class, new JsonDeserializer<DateTime>() 
          {

            public DateTime deserialize(JsonElement arg0, Type arg1,JsonDeserializationContext arg2) throws JsonParseException 
            {
                try{return new DateTime(arg0.getAsString());}
                catch (Exception e){
                    return null;
                    }
            }
});
4

1 回答 1

0

Json 以名称/值对的形式出现。你几乎肯定会得到一个例外并吃掉它。您需要提取名称/值对的值以传递到新的 DateTime。如果您的 JSON 类似于 { "date": 213424234 } 那么您需要这样做:

DateTime date = new DateTime(jsonElement.getAsJsonObject().get( "date" ).getAsLong());
于 2013-07-25T22:48:56.530 回答