gpt4 book ai didi

android - 如何将作为 json 字符串接收到的 .net DateTime 解析为 java 的 Date 对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:27 25 4
gpt4 key购买 nike

我正在通过我的 asmx 网络服务接收 .NET 的 DateTime 对象作为 json 字符串,并尝试在 gson 库的帮助下解析它。但似乎不支持解析 .net 风格的 DateTime。我如何使用 Gson 轻松地将它解析为 java 的 Date 对象而不会有太多麻烦?

我收到的字符串是这样的:

"DateOfBirth":"\/Date(736032869080)\/"

附言我不想在服务器端进行任何修改以接收 DateTime 作为 Long 值

最佳答案

像这样:

String json = "\"\\/Date(736032869080)\\/\"";
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new NetDateTimeAdapter()).create();
System.out.println("Date=" + gson.fromJson(json, Date.class));

class NetDateTimeAdapter extends TypeAdapter<Date> {
@Override
public Date read(JsonReader reader) throws IOException {
if (reader.peek() == JsonToken.NULL) {
reader.nextNull();
return null;
}
Date result = null;
String str = reader.nextString();
str = str.replaceAll("[^0-9]", "");
if (!TextUtils.isEmpty(str)) {
try {
result = new Date(Long.parseLong(str));
} catch (NumberFormatException e) {
}
}
return result;
}
@Override
public void write(JsonWriter writer, Date value) throws IOException {
// Nah..
}
}

或使用this example而是遵循“处理 WCF Microsoft JSON 日期”一章。

关于android - 如何将作为 json 字符串接收到的 .net DateTime 解析为 java 的 Date 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127529/

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