gpt4 book ai didi

Java/JSON 日期时间字段

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:37 25 4
gpt4 key购买 nike

我有一个包含时间戳的 JSON 响应,但在将其解析为日期对象时遇到一些问题。我在将其序列化回相同格式时也遇到同样的困难。我正在使用 Gson 解码对对象的 JSON 响应,这是我唯一遇到问题的地方。

    "TimeStamp":"\/Date(1327650052632+0000)\/"

我确实查看了自定义序列化/反序列化适配器,但无法从中得出结论。

问候,EZFrag

最佳答案

我设法理解了适配器(某种程度上)。这是我使用的代码:

private Gson createGson(){

JsonSerializer<Date> ser = new JsonSerializer<Date>() {
@Override
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext
context) {
return src == null ? null : new JsonPrimitive("\\/Date("+src.getTime()+"+0000)\\/");
}
};

JsonDeserializer<Date> deser = new JsonDeserializer<Date>() {
@Override
public Date deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
String tmpDate = json.getAsString();

Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(tmpDate);
boolean found = false;

while (matcher.find() && !found) {
found = true;
tmpDate = matcher.group();
}


return json == null ? null : new Date(Long.parseLong(tmpDate));
}
};


return new GsonBuilder().serializeNulls()
.registerTypeAdapter(Date.class, ser)
.registerTypeAdapter(Date.class, deser).create();
}

关于Java/JSON 日期时间字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9031370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com