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

使用Jackson的json中的ISO8601毫秒

苏鹏鹍
2023-03-14
问题内容
import com.fasterxml.jackson.databind.util.ISO8601DateFormat;

objectMapper.setDateFormat(new ISO8601DateFormat());

很好,但这忽略了毫秒,如何在不使用非线程安全的情况下获取日期SimpleDateFormatter呢?

https://github.com/FasterXML/jackson-
databind/blob/master/src/main/java/com/fasterxml/jackson/databind/util/ISO8601DateFormat.java


问题答案:

ISO8601DateFormat.formatCalls
ISO8601Utils.format(date),反过来又调用format(date, false, TIMEZONE_Z)-
false参数告诉Jackson不包括毫秒。

似乎没有办法配置此类或设置任何参数,但是幸运的是可以对其进行扩展:

public class ISO8601WithMillisFormat extends ISO8601DateFormat {
    @Override
    public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
        String value = ISO8601Utils.format(date, true); // "true" to include milliseconds
        toAppendTo.append(value);
        return toAppendTo;
    }
}

然后,我们可以在对象映射器中使用这个新类:

ObjectMapper objectMapper = new ObjectMapper();
ISO8601DateFormat dateFormat = new ISO8601WithMillisFormat();
objectMapper.setDateFormat(dateFormat);

我进行了测试,new Date()结果为2017-07-24T12:14:26.817Z(毫秒)。



 类似资料:
  • 问题内容: 所以,我的json中有iso8601日期,看起来像“ 2016-06-07T17:20:00.000 + 02:00” 有没有办法使用swift4解析这些iso8601日期?我缺少明显的东西吗? 我尝试了以下操作,但是仅jsonShipA中的dateString“ 2016-06-07T17:20:00Z”是可解析的…。 游乐场的输出为: 引发的错误是“预期日期字符串为ISO8601格

  • 我试图动态解析一些JSON到一个Map 但是当我尝试使用一些更复杂的JSON和嵌套信息时失败了。我试图从json解析示例数据。组织 我得到以下错误 异常在线程"main"com.fasterxml.jackson.databind.JsonMapping异常:不能反序列化实例的java.lang.字符串START_OBJECT令牌 有没有办法将复杂的JSON数据解析成映射?

  • 我正在用java中的jackson构建一个json体。它会像下面这样 基于不同的 REST URI,json 主体必须忽略某些字段或元素。如何使用杰克逊忽略上述 json 正文中的“学生”部分?当我忽略它时,我应该只能得到 但我得到它如下,这是不正确的- 我有两个带有getters和setters的类,一个作为主语,另一个作为学生。我尝试使用@JsonIgnore,但是它忽略了所有的URI,这是我

  • 问题内容: 我有一个Spring MVC Servlet,我需要从JavaScript前端Web应用程序接受JSON。要解析JSON,我需要使用Jackson。我需要获取JSON中的值并将它们按在JSON中出现的顺序存储到列表中。我尝试过将JsonFactory与JsonParser和JsonNode对象一起使用,但是可以使其正常工作。我也尝试过打开BufferedReader并逐行遍历请求正文,

  • 问题内容: 我正在使用 ObjectMapper 进行java-json映射。 这是我的java类: 这就是我得到的: 所以我现在的问题是,如何获得此json输出: 我想要它与我的Java声明中的顺序相同。有没有办法指定它?也许带有注释或类似的东西? 问题答案:

  • 我正在使用ObjectMapper进行java-json映射。 这是我的java类: 这就是我得到的: 我希望它的顺序与java声明中的顺序相同。有办法指定吗?也许有注释之类的东西?