如何设置JasonProperty值dyanamically

时间:2017-07-18 16:34:55

标签: java json

我想创建一个json请求,如下所示:

"additionalData": {
"riskdata.basket.item1.sku": "045155",
"riskdata.basket.item1.quantity": "1"
"riskdata.basket.item2.sku": "0451166",
"riskdata.basket.item2.quantity": "1"

...

"riskdata.basket.item4.sku": "0451111",
"riskdata.basket.item4.quantity": "2"

请建议如何在对象映射中动态设置JsonProperty值。

示例:deliveryMethod是一个常量字段,因此我可以使用JsonProperty注释进行如下映射。但是,我如何使用JsonProperty来获取sku和数量,以便它可以接受尽可能多的数字。任何建议都会有所帮助。

public class AdditionalData implements java.io.Serializable
{
    @JsonProperty(value = "riskdata.deliveryMethod")
    private String deliveryMethod;
    @JsonProperty(value = "riskdata.basket.item??.sku")
    private String sku;
    @JsonProperty(value = "riskdata.basket.item??.quantity")
    private String quantity;
}

1 个答案:

答案 0 :(得分:0)

您可以在basket[]课程中创建AdditionalData数组属性。

public class AdditionalData implements java.io.Serializable
{
  @JsonProperty(value = "riskdata.deliveryMethod")
  private String deliveryMethod;

  @JsonProperty(value = "riskdata.basket")
  private Basket[] basket;
}

public class Basket implements java.io.Serializable
{
  @JsonProperty(value = "sku")
  private String sku;

  @JsonProperty(value = "quantity")
  private String quantity;
}

并改变你的json结构:

"additionalData": {
  "riskdata.basket": [
   {
      "sku": "045155",
      "quantity": 1"
   },
   {
      "sku": "045156",
      "quantity": 1"
   }]
}