【问题标题】:Map a dynamic json key to a class field using JPA使用 JPA 将动态 json 键映射到类字段
【发布时间】:2020-11-11 11:44:55
【问题描述】:

我正在尝试将一个 json 对象映射到一个实体类。我的Json如下:

    {
   
    "availabilities": {
    "2020-07-14T00:00:00Z": "Not Available",
    "2020-08-14T00:00:00Z": "Not Available",
    "2020-06-14T00:00:00Z": "Not Available",
    "2020-05-14T00:00:00Z": "Not Available",
    "2020-00-14T00:00:00Z": "Not Available"

      }
    }

我使用 Spring Data 创建了一个实体类:

@Entity
public class Availabilities {


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;


private String date;
private String availibility;



public String getDate() {
    return date;
}
public void setDate(String date) {
    this.date = date;
}
public String getAvailibility() {
    return availibility;
}
public void setAvailibility(String availibility) {
    this.availibility = availibility;
}

}

但我收到以下错误:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "2020- 
07-14T00:00:00Z" (class org.abc.hotel.booking.model.Availabilities)

请帮忙。

【问题讨论】:

    标签: java spring jpa spring-data-jpa


    【解决方案1】:

    您的代码正在尝试按键值映射,这意味着您的变量是键。 在你的情况下。 json看起来像这样可以工作

    // map to Availabilities
          {
            "date": "2020-07-14T00:00:00Z",
            "availibility": "Not Available",
          }
    

    如果你想解析成一个列表 => How to convert JSON string into List of Java object?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2014-11-02
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 2014-10-06
      相关资源
      最近更新 更多