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

无法从字符串[duplicate]中反序列化“java.time.LocalDate”类型的值

长孙泉
2023-03-14

由于以下异常,我无法反序列化Java-8-locatedate

JSON分析错误:无法从字符串“15/09/1978”反序列化< code>java.time.LocalDate类型的值:无法反序列化Java . time . local date(Java . time . format。无法在索引0处分析DateTimeParseException)文本“15/09/1978”;

包含Date的JSON请求对象如下

[“employeeName”:“ABC XYZ”,“birthDate”:“15/09/1978”]

我还尝试通过引用 URL 反序列化 Java 8 LocalDateTime 与 JacksonMapper 来实现日期反序列化 但是,以下代码

@DateTimeFormat(iso=DateTimeFormatter.Pattern(“dd/mm/yyyy”))给出以下编译错误

类型不匹配:无法从 DateTimeFormatter 转换为 DateTimeFormat.ISO 在
行中

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="EMP_ID", updatable = false, nullable = false)
private long empId;

@Column(name="BIRTH_DATE")
//below line gave compilation error ==> Type mismatch: cannot convert from DateTimeFormatter to DateTimeFormat.ISO
@DateTimeFormat(iso = DateTimeFormatter.ofPattern("dd/mm/yyyy"))
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/mm/yyyy")
private LocalDate birthDate;

请帮我解决这个问题,提前谢谢

共有1个答案

林正平
2023-03-14

我的建议是:

以毫秒为单位发送日期,并将该字符串以毫秒更改为日期。

public class DateConverter {

    public static Date getDate(String sessionDate) {
        Long sessionOnDate = Long.parseLong(sessionDate);
        Date date = new Date(sessionOnDate);
        return date;
    }

    public static Long getTimeinMilliseconds(String myDate) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = sdf.parse(myDate);
        long millis = date.getTime();
        return millis;
    }

}

在实体中,您可以简单地:

public class SessionDynamic
{
private Date sessionDate;
}

让我知道:)

 类似资料:
  • 使用Spring1.5.8释放Jackson mapper,给出以下异常。 在[源:未知;行:-1,列:-1](通过引用链:com.copart.conversationapi.CallDisposition.model.vo.CallLogEntity[“CallEndTime”]) Callentity.java java pom.xml

  • 我使用的是带有Rest控制器的spring boot。我有一个@PostMapping,Requestbody的对象id类型为UUID。当我试图测试邮递员的邮件请求时,我得到以下错误。 “JSON分析错误:无法从字符串中反序列化类型的值\”4BE4BD08CFDF407484F6A04131790949\“:UUID必须用标准36字符表示形式表示;嵌套异常为com.fasterxml.jackso

  • 如果我添加标签 到我的LocalDate变量,那么它就可以工作了。但我认为这是自动的与上面的属性设置。另外,如果我没记错的话(后来我决定使用整数数组),那只适用于序列化,而不适用反序列化(但我不记得最后一部分是真的)。

  • 我有一门课是这样的: 但是当我试图序列化它时,我收到一个错误,上面写着“试图序列化java.lang.class:java.lang.字符串。忘记注册一个类型适配器了吗?”。所以我创建了这个适配器: } 并登记如下: 但我还是犯了同样的错误<我做错了什么 适配器的实现看起来正常吗?

  • 问题内容: 我有一个使用以下实现的基于json的REST Web服务:使用Jackson的Jetty,Jersey,Jersey-JSON。 我的方法之一收到一个Person实例,该实例的字段类型为。即: 如果我使用名称数组来调用它,一切正常!例如: 但是,如果该人只有一个名字,我的客户会创建一个值元素,例如: 当我尝试使用单个值调用服务时,出现异常: 题: 我应该如何创建/配置Web服务,以便在

  • 问题内容: 在这一点上,这已经是一个老问题了,我可能已经阅读了有关SO的所有相关主题。 但是要点。我需要一些建议或更正吗? 出于某种原因,我们有两种可生成的Jsons: 和 对象和数组。还有其他参数,但在这里无关紧要。每个请求的“ id”都不同。有时是userId,PortfolioId等。因此我得到“ id”并将其传递给相关的var。 很长一段时间我一直在处理第一种情况。并这样创建POJO: 数