杰克逊注释教程?

时间:2013-08-16 14:10:58

标签: android jackson

有人知道一些好的杰克逊注释教程吗?特别是,如何使用jackson注释解析json数组?  假设我有这样的json:

{
...
"item1": "aaa",
"item2": "bbb",
"fl": [
     {
         "item3": "ccc",
         "item4": "ddd"
      }
  ]
} 

如何使用jackson注释解析包含数组的json?

2 个答案:

答案 0 :(得分:1)

我假设您在询问如何将JSON映射到Java对象(解析通常是指将JSON内容流解码为另一种表示的较低级别活动,可能是也可能不是对象集合。)

使用Jackson(以及许多其他库,Genson,GSON等),您可以选择将其绑定到具有匹配结构的POJO中,例如:

public class Value { 
  public String item1; // or some other type one can bind from JSON String
  public String item2; // can alternatively use getters/setters instead of public fields
  public List<EntryType> f1;
}
public class EntryType {
  public String item3;
  public String item4;
}

或者将其作为Tree表示来读取:

JsonNode rootNode = mapper.readTree(inputSource);

在后一种情况下,您需要遍历树节点以查找数据。

关于注释:如果需要更改绑定的默认属性,则只需要使用注释;比如JSON对象字段和POJO属性名称之间的映射。

对于Jackson特定的配置,包括一些注释,请参阅Jackson-databind github项目:https://github.com/FasterXML/jackson-databind/

答案 1 :(得分:0)

使用Jackson解析json有三种方法 -

  1. 使用流解析器。 (http://www.studytrails.com/java/json/java-jackson-json-streaming.jsp)
  2. 将Json解析为树模型 - http://www.studytrails.com/java/json/java-jackson-json-tree-parsing.jsp
  3. 我们没有注释的数据绑定 - data bindingdata binding with filtersPolymorphic data binding