当前位置: 首页 > 知识库问答 >
问题:

springboot无法以更易读的方式将ZonedDatetime转换为json响应

百里锋
2023-03-14
{
    "DateTime": {
        "offset": {
            "totalSeconds": 19800,
            "id": "+05:30",
            "rules": {
                "transitionRules": [],
                "transitions": [],
                "fixedOffset": true
            }
        },
        "zone": {
            "id": "Asia/Calcutta",
            "rules": {
                "transitionRules": [],
                "transitions": [
                    {
                        "offsetBefore": {
                            "totalSeconds": 21208,
                            "id": "+05:53:28",
                            "rules": {
                                "transitionRules": [],
                                "transitions": [],
                                "fixedOffset": true
                            }
                        }

我尝试在对象映射器中使用日期格式化程序,但没有像预期的那样工作。

    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm");
        objectMapper.setDateFormat(dateFormat);
        return objectMapper;

还尝试使用@jsonformat(pattern=“dd::mm::yyyy”)注释。没有给出结果。

public class Response {
    @JsonProperty(
            value = "DateTime",
            required = false
    )
    @XmlElement(
            name = "DateTime",
            required = false
    )
    @JsonFormat(pattern = "dd::MM::yyyy")
    private ZonedDateTime dateTime;

共有1个答案

公孙志
2023-03-14

确保您有jackson-datatype-jsr310作为依赖项。这个模块包含所有java.time类的序列化器和反序列化器,这些类还应该支持指定自定义模式。

spring-boot配置的默认ObjectMapper应该从类路径中自动提取这个模块。

如果您自己配置ObjectMapper,则需要注册模块

objectMapper.registerModule(new JavaTimeModule());

objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
 类似资料:
  • 我正在处理jBPM 7.22.0。最终的 我使用服务任务REST从这个api获取响应https://reqres.in/api/users/1 我想将此响应获取到一个对象中,因此我创建了这个类(或jBPM中调用的数据对象): 我在jBPM中创建了一个名为res的全局变量,该变量具有我要存储响应的数据对象的类型。因此,在我的REST服务任务的“任务”中,我有屏幕截图中的内容。 如您所见,我想将结果存

  • 无法使用颠簸实现上述输出格式,并且经历了多个SO问题,找不到类似的问题。尝试在 jolt 规范数组中添加索引,但不起作用。提前感谢,并在下面找到输入,输出和震动规格 输入: Jolt规格: 电流输出: 预期产出:

  • 我需要将其转换为以下格式: 类型的数量可以改变(例如,可以只有A和B)。有人能帮我吗?我使用这个组件在网站https://js.devexpress.com/demos/widgetsgallery/demo/datagrid/simplearray/angular/light/上显示数据

  • 我是java.time包的新手。我有一个本地日期是2015-12-10。我需要将此转换为ZonedDateTime。时间应该是00:00:00,区域是zoneoffset.utc。 dateTimeException:无法从java.time.localDate类型的TemporalAccessor:2015-12-10获取Instant 我也试过: 这会产生意想不到的结果。 我查看了API并尝试

  • 我是格森的新手。我需要将下面的JSON响应转换成一个列表。 JSON响应: 我有一门课要教数据 账户JAVA 当我对我的班级做出回应时,我得到了: 现在我需要将这两个值放入

  • 在某些情况下,日期是错误的。有什么建议吗?