数据如下:
{
"linkId": "xxxx",
"showNameCn": "xxx",
"menuFlag": "P",
"unionName": "xxx",
"unionId": "1103",
"roundList": [],
"partySizeMain": 0,
"partySizeDrink": 0,
"partySizeElse": 1,
"tagList": [
{
"key": "keyType",
"value": "单品,套餐子项"
},
],
"price": 1450
},
想要 @JsonProperty(“linkId”)
private String linkId;
@JsonProperty(“showNameCn”)
private String showNameCn;
。。。输出到MenuItem里面
使用@JsonUnwrapped注解
@Data
public class Menu {
@JsonUnwrapped
private MenuItem menuItem;
//所有轮次合起来子项数量的最小值
private Integer minCount;
//所有轮次合起来子项数量的最大值
private Integer maxCount;
// 键位名称-定制化名称(逗号分隔)
private List<Round> roundList;
}
@Data
public class MenuItem {
// 套餐linkId
@JsonProperty("linkId")
private String linkId;
@JsonProperty("showNameCn")
private String showNameCn;
// 套餐类型
/**
* 1. P:无子项的单品或套餐子项
* 2. C:Condiment套餐,一般用于单品或套餐子项的定制化选项
* 3. M:Mealdeal套餐
* 4. S:Supercombo套餐
* 5. G:产品组
*/
@JsonProperty("menuFlag")
private String menuFlag;
@JsonProperty("menuFlagType")
private String menuFlagType;
// 主食数量
@JsonProperty("partySizeMain")
private Integer partySizeMain;
// 饮料数量
@JsonProperty("partySizeDrink")
private Integer partySizeDrink;
// 小食数量
@JsonProperty("partySizeElse")
private Integer partySizeElse;
// 套餐价格
@JsonProperty("price")
private Double price;
@JsonProperty("tagList")
private List<Map<String,String>> tagList;
@JsonProperty("preferenceList")
private List<Map<String,String>> preferenceList;
//定制化选项默认标记
@JsonProperty("preferenceDefault")
private Boolean preferenceDefault;
@JsonProperty("unionId")
private String unionId;
@JsonProperty("unionName")
private String unionName;
@JsonProperty("parentRoundId")
private Integer parentRoundId;
}
menuData = fromJson(bos.toString(), new TypeReference<List<Menu>>() {});
public static <T> T fromJson(String json, TypeReference<T> valueTypeRef) {
try {
return jsonMapper.readValue(json, valueTypeRef);
} catch (Exception e) {
log.error("error on deserialize", e);
return null;
}
}