Java Jackson包装器反序列化最佳实践

Java Jackson包装器反序列化最佳实践,java,android,json,jackson,Java,Android,Json,Jackson,我有以下JSON,我想使用Jackson JSON处理器库()解析它: 就最佳实践而言,您建议如何成为最佳方式 解析JSON的简单而快速的形式是创建一个带有注释的bean,然后调用Jackson 有些人喜欢这样: @JsonIgnoreProperties(ignoreUnknown = true) public class YourClass { @JsonProperty("wrapper") public Wrapper wrapper; @JsonIgnoreProperties(i

我有以下JSON,我想使用Jackson JSON处理器库()解析它:


就最佳实践而言,您建议如何成为最佳方式

解析JSON的简单而快速的形式是创建一个带有注释的bean,然后调用Jackson

有些人喜欢这样:

@JsonIgnoreProperties(ignoreUnknown = true)
public class YourClass {

@JsonProperty("wrapper")
public Wrapper wrapper;

@JsonIgnoreProperties(ignoreUnknown = true)
public static class Wrapper{
        @JsonProperty("Items")
        public ArrayList<Item> items = new ArrayList<Item>();
}


@JsonIgnoreProperties(ignoreUnknown = true)
public static class Item{
        @JsonProperty("name")
        public String name;
        ...
}

....
重用ObjectMapper非常重要,因为实例化它非常昂贵

改进:如果设置此选项,JSON可能会得到改进(bean基于此)


杰克逊?是什么that@MT8这是一个JSON库。他应该阅读手册,而不是在这里问。好的,我使用GSON lib,但我认为使用lib会造成堆问题…解析它directly@Kayaman你能给我指一下正确的链接吗?我如何管理wapper?创建一个包装器类?您真正的问题是什么?遗憾的是,我无法更改JSON结构,我只需要在itAnyway上修改我的代码,修改注释以适应JSON:)
@JsonIgnoreProperties(ignoreUnknown = true)
public class YourClass {

@JsonProperty("wrapper")
public Wrapper wrapper;

@JsonIgnoreProperties(ignoreUnknown = true)
public static class Wrapper{
        @JsonProperty("Items")
        public ArrayList<Item> items = new ArrayList<Item>();
}


@JsonIgnoreProperties(ignoreUnknown = true)
public static class Item{
        @JsonProperty("name")
        public String name;
        ...
}

....
  public ObjectMapper mMapper;

  ...

  if (mMapper == null)
      mMapper = new ObjectMapper();
  YourClass yourClass = (YourClass) mMapper.readValue(stringJSON, YourClas.class);
{  
  "wrapper":{  
    "general":{
        "value":10
    },
    "items":[  
        "item":{      
            "name":"DOG",  
            "0":78,  
            "1":125
            "name":"Lucky",
            "features":{
                "color":"brown",
                "sex":"male"
            }
        },
        "item":{
            "name":"CAT",
            "0":123,
            "1":94
            "name":"Fluffy",
            "features":{
                "color":"black",
                "sex":"female"
            }
        }
    ]
}