gpt4 book ai didi

java - 如何将包含 LocalDate 字段的 json 转换为可反序列化格式?

转载 作者:搜寻专家 更新时间:2023-11-01 03:32:51 24 4
gpt4 key购买 nike

我有一个存储在字符串中的对象。对象的字段之一是 LocalDate。

"from": {
"year": 1000,
"month": "JANUARY",
"era": "CE",
"dayOfMonth": 1,
"dayOfWeek": "WEDNESDAY",
"dayOfYear": 1,
"leapYear": false,
"monthValue": 1,
"chronology": {
"calendarType": "iso8601",
"id": "ISO"
}
}

我应该如何将此 json 转换为可用于反序列化的格式?

下面的代码

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;


ObjectMapper om = new ObjectMapper();
om.registerModule(new JavaTimeModule());
MyCustomObject obj = om.readValue(json, MyCustomObject.class); //error

导致这个异常:

com.fasterxml.jackson.databind.JsonMappingException: Unexpected token (START_OBJECT), expected VALUE_STRING: Expected array or string.

这是我用作 MyCustomObject 的 MyCustomObject 类

public class MyCustomObject<T> {
private T from;
private T to;

public MyCustomObject() {
}

public T getFrom() {
return this.from;
}

public void setFrom(T from) {
this.from = from;
}

public T getTo() {
return this.to;
}

public void setTo(T to) {
this.to = to;
}
}

最佳答案

像这样替换您的 MyCustomObject.class:

==================================
package ;
public class Chronology
{
private String calendarType;

private String id;

public void setCalendarType(String calendarType){
this.calendarType = calendarType;
}
public String getCalendarType(){
return this.calendarType;
}
public void setId(String id){
this.id = id;
}
public String getId(){
return this.id;
}
}

==================================
package ;
public class From
{
private int year;

private String month;

private String era;

private int dayOfMonth;

private String dayOfWeek;

private int dayOfYear;

private boolean leapYear;

private int monthValue;

private Chronology chronology;

public void setYear(int year){
this.year = year;
}
public int getYear(){
return this.year;
}
public void setMonth(String month){
this.month = month;
}
public String getMonth(){
return this.month;
}
public void setEra(String era){
this.era = era;
}
public String getEra(){
return this.era;
}
public void setDayOfMonth(int dayOfMonth){
this.dayOfMonth = dayOfMonth;
}
public int getDayOfMonth(){
return this.dayOfMonth;
}
public void setDayOfWeek(String dayOfWeek){
this.dayOfWeek = dayOfWeek;
}
public String getDayOfWeek(){
return this.dayOfWeek;
}
public void setDayOfYear(int dayOfYear){
this.dayOfYear = dayOfYear;
}
public int getDayOfYear(){
return this.dayOfYear;
}
public void setLeapYear(boolean leapYear){
this.leapYear = leapYear;
}
public boolean getLeapYear(){
return this.leapYear;
}
public void setMonthValue(int monthValue){
this.monthValue = monthValue;
}
public int getMonthValue(){
return this.monthValue;
}
public void setChronology(Chronology chronology){
this.chronology = chronology;
}
public Chronology getChronology(){
return this.chronology;
}
}

==================================
package ;
public class MyCustomObject
{
private From from;

public void setFrom(From from){
this.from = from;
}
public From getFrom(){
return this.from;
}
}

关于java - 如何将包含 LocalDate 字段的 json 转换为可反序列化格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43871472/

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