java解析json 数据:实体中套子实体,json 字段数据解析到子实体 jackson @JsonUnwrapped

数据如下:

  {
    "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;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_Octopus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值