首页 > 代码库 > Jackson Gson Json.simple part 2

Jackson Gson Json.simple part 2

这篇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(); // javabeanObjectMapper 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 = http://www.mamicode.com/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);

 

Jackson Gson Json.simple part 2