java - 解析来自以 id 作为字段名称的 REST API 的 json 响应
问题描述
我想解析 json 字符串并形成一个 pojo 对象,但响应有些不寻常。我有来自 API 的以下类型的响应
"data": {
"12": {
"value": "$0.00",
"order_id": "12",
"order_date": "2020-08-26 15:50:05",
"category_name": "Games",
"brand_id": "4",
"denomination_name": "AED 50",
"order_quantity": "1",
"vendor_order_id": "A-123",
"vendor_location": "",
"vouchers": {
"804873": {
"pin_code": "41110AE",
"serial_number": "fddfgfgf1234444"
}
}
},
"15": {
"value": "$0.00",
"order_id": "15",
"order_date": "2020-08-26 08:39:11",
"category_name": "Games",
"brand_id": "52",
"brand_name": "PlayStation",
"denomination_name": "$20",
"order_quantity": "1",
"vendor_order_id": "A-316",
"vendor_location": "",
"vouchers": {
"806328": {
"pin_code": "fdfd",
"serial_number": "fawwwww"
}
}
}
}
}
由于内部数据字段名称与凭证相同,我如何解析此响应
解决方案
如果您使用 Jackson JSON 库,您应该具有如下所示的 POJO,并用于PropertyNamingStrategy.SnakeCaseStrategy
处理输入 JSON 中的属性名称:
// top-level container
public class Response {
private Map<Integer, Order> data;
// getter/setter
}
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Order {
private String value; // may be some Currency class
private Integer orderId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime orderDate;
private String categoryName;
private Integer brandId;
private String brandName;
private String denominationName; // may be Currency too
private Integer orderQuantity;
private String vendorOrderId;
private String vendorLocation;
private Map<Integer, Voucher> vouchers;
// getters/setters
}
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Voucher {
private String pinCode;
private String serialNumber;
// getters/setters
}
推荐阅读
- postgresql - 如何在 PostgreSQL 中合并两个默认值为 0 的列?
- angular - 如何以反应形式在ngselect中设置Value / PatchValue多个值
- python - 将数据框的一部分复制到另一个数据框
- c - GStreamer qtmux/mp4mux 命令转码
- laravel - 用户在 Laravel Jetstream 中注册后无法重定向
- html5-video - 如何在带有 Angular 的 Nativescript 中包含 JW Player?
- javascript - 使用 jQuery for Elementor 和 Wordpress 的随机背景图像
- docker - 有没有办法在 docker swarm 中更喜欢节点部署?
- html - 文本显示在图像下而不是内联
- php - 使用 NGINX 时 set_userdata 数据给出 502 bad gateway 错误