这篇blog介绍 Jackson 的特点和使用方法

 

Jackson支持三种使用方法

  • 流API(streaming api Incremental parsing/generation)
    • JsonParse reads, JsonGenerator writes
    • 高效
    • 和part 1 json的用法类似,不好用
  • 树形模型
    • ObjectMapper用来建树,和JsonNode配合使用
  • 数据绑定
    • Json与POJO相互转换
    • 简单数据转换 简单对象是指java中的map, list等等
    • 全数据转换 自定义的javabean

    

使用者的角度来评价这三种使用方法

  • 流模式最高效,速度快,内存占用少
  • 数据绑定最方便
  • 树形模型最灵活

例子:

数据绑定例子

Javabean -> Json 

User user = new User(); // javabean
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("/Users/sangs/Downloads/json.txt"), user); // 写入文件
System.out.println(mapper.writeValueAsString(user));

Json -> Javabean

ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("/Users/sangs/Downloads/json.txt"), User.class);
System.out.println(user);

Javabean 和 Json转换相当简单,看起来也直观,仅需要一个转换器ObjectMapper

 

原始数据到Json的转换

假如我们有原始数据,我们希望能够直接使用这些数据拼成Json,这个Json以后还能被转化为javabean

Map<String,Object> userData = new HashMap<String,Object>();
Map<String,String> nameStruct = new HashMap<String,String>();
nameStruct.put("first", "Joe");
nameStruct.put("last", "Sixpack");
userData.put("name", nameStruct);
userData.put("gender", "MALE");
userData.put("verified", Boolean.FALSE);
userData.put("userImage", "Rm9vYmFyIQ==");
mapper.writeValue(new File("user-modified.json"), userData);

 

相关文章:

  • 2021-11-06
  • 2021-07-08
  • 2022-12-23
  • 2021-07-21
  • 2021-09-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-28
  • 2022-02-16
  • 2022-01-10
  • 2021-08-06
相关资源
相似解决方案