当前位置: 首页 > 面试题库 >

如何将以json字符串形式接收的.net DateTime解析为Java的Date对象

常业
2023-03-14
问题内容

我正在DateTime通过我的asmx网络服务以json字符串形式接收.NET
对象,并尝试在gson库的帮助下对其进行解析。但是似乎不支持解析.net样式的DateTime。我如何Date使用Gson 轻松地将其解析为Java
对象?

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

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

PS我不想在服务器端进行任何修改以接收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..
    }
}

或改用此示例,并遵循“使用WCF Microsoft JSON日期处理”一章。



 类似资料:
  • 问题内容: 我有以下一段JSON: .NET代码的结果: 现在,我面临的问题是如何在JavaScript中创建一个Date对象。我所能找到的就是令人难以置信的正则表达式解决方案(许多包含错误)。 很难相信没有优雅的解决方案,因为这都是JavaScrip中的全部,我的意思是JavaScript代码试图读取应该被认为是JavaScript代码的JSON(JavaScript对象表示法),但现在看来,这

  • 问题内容: 如何将下面的日期字符串解析为一个Date对象? 引发异常… 问题答案: 模式是错误的。您有3个字母的天的缩写,因此必须为。您有3个字母的月份缩写,因此必须为。由于这些日和月的缩写对语言环境敏感,因此您也希望将语言环境明确指定为英语,否则它将使用平台默认语言环境,而语言环境本身可能不是英语。 这在这里打印 根据我的时区是正确的。 如果您不想使用代替,我也会重新考虑。阅读javadoc以获

  • 我在android做一个项目,从客户端我需要以json的形式发送数据,这是完美的工作,在服务器端是使用j2ee,在那里以字符串的形式接收结果,我如何得到作为json的结果,或者如何在服务器端将它转换成json存储在DB,谢谢!!

  • 问题内容: 我有一串 现在我必须获取Date对象。我的DateObject应该与startDate的值相同。 我就是这样 但是输出是格式 问题答案: 基本上,你可以有效地将字符串格式的日期转换为日期对象。如果此时将其打印出来,则将获得标准日期格式输出。为了在此之后对其进行格式化,然后需要将其转换回具有指定格式(先前已经指定)的日期对象。

  • 我有一个json文件。 我需要将它转换为String的ArrayList。如何使用Jackson库? UPD2:

  • 问题内容: 我想将以下JSON字符串转换为Java对象: 我的目标是轻松访问它,例如: 我听说过Jackson,但是由于涉及“ mymusic”列表,我不知道如何使用它来适应我拥有的json字符串,因为它不仅仅是键值对。如果杰克逊不是最好的选择,我该如何用杰克逊完成? 问题答案: 为此,无需与GSON一起使用;杰克逊可以做普通的地图/列表: 或更方便的JSON树: 顺便说一句,没有理由为什么您不能