java - 映射棘手的json的聪明方法
问题描述
我有下面的 json,我正在寻找智能方法来为 java 对象映射它。直到现在我尝试了这种方式,但它没有帮助。
JSON:https ://pastebin.com/NBCGXgUD
这是我试过的
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class TravelpayoutsResponse {
private boolean success;
private TravelpayoutsData data;
private String error;
private String currency;
}
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class TravelpayoutsData {
private FlightDetails flightDetails[];
}
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class FlightDetails {
private FlightDetail[] flightDetails;
}
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class FlightDetail {
private int price;
private String airline;
@JsonProperty("flight_number")
private String flightNumber;
@JsonProperty("departure_at")
private String departureDate;
@JsonProperty("return_at")
private String returnDate;
@JsonProperty("expires_at")
private String expirationDate;
}
但这对我没有用。也许你知道如何映射它?我会非常感激
解决方案
JSON 中没有任何数组。
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class TravelpayoutsResponse {
private boolean success;
private Map<String, Map<String, FlightDetail> data;
private String error;
private String currency;
}
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class FlightDetail {
private int price;
private String airline;
@JsonProperty("flight_number")
private String flightNumber;
@JsonProperty("departure_at")
private String departureDate;
@JsonProperty("return_at")
private String returnDate;
@JsonProperty("expires_at")
private String expirationDate;
}
推荐阅读
- html - 使用 svg 创建自定义 div 形状(包括内容)
- cordova - Ionic 使用 PayPal 插件 vs Braintree
- android - Android Studio 4.2.2 - 安装的构建工具版本 31.0.0 已损坏。使用 SDK 管理器删除并重新安装
- math - 情感分析中支持向量机背后的数学
- r - 按组删除重复的年份行
- azure-storage - Azure 存储资源管理器 - 筛选上次修改时间
- wagtail - 页面类型随机显示“主页”或“页面”
- php - Codeigniter - 帐户在一段时间后注销
- telegram-bot - python-telegram-bot 中的 TimedOut 但已发送消息
- c# - asp.net MVC 上传文件名为 System.Web.HttpPostedFileWrapper