我有要使用Jackson解析的json。 JSON看起来像-

coupons: {
  1: {
     title: "Mode von",
     description: "",
     type: "offer",
     code: "-",
     expiry: "0000-00-00",
     link: ""
  },
  2: {
     title: "Prime 1",
     description: "",
     type: "offer",
     code: "-",
     expiry: "0000-00-00",
     link: "http://test.com/"
  }
}


优惠券的数量在这里不是恒定的,并且会因响应而异。
我的难题是创建可以容纳此类对象的相应Java类。

我尝试使用Map作为-

public class Coupons {
   Map<String, String>coupons = new HashMap<String, String>();
   public Map<String, String> getCoupons() {
      return coupons;
   }
}


但是-

System.out.println(coupons.getCoupons().get("type"));
System.out.println(coupons.getCoupons().get("code"));


总是让我为空。这个json的Java类是正确的吗?

最佳答案

您的第一级键是索引编号1、2、3等。
因此,为了获取类型和代码,您必须指定密钥。

您可以这样做:

var coupons = coupons.getCoupons(); //<--breakpoint to see if this is really populated.
foreach( String key in coupons.Keys ){ //<- pseudo code, iterate over keys
  var obj = coupons.get(key);
  var type = obj.get("type");
  etc..
}


希望这可以帮助您继续前进

09-05 04:22