Jackson Gson Json.simple part 2

這篇blog介紹 Jackson 的特色和使用方法java

 

Jackson支持三種使用方法json

  • 流API(streaming api Incremental parsing/generation)
    • JsonParse reads, JsonGenerator writes
    • 高效
    • 和part 1 json的用法相似,很差用
  • 樹形模型
    • ObjectMapper用來建樹,和JsonNode配合使用
  • 數據綁定
    • Json與POJO相互轉換
    • 簡單數據轉換 簡單對象是指java中的map, list等等
    • 全數據轉換 自定義的javabean

    

使用者的角度來評價這三種使用方法api

  • 流模式最高效,速度快,內存佔用少
  • 數據綁定最方便
  • 樹形模型最靈活

例子:app

數據綁定例子spa

Javabean -> Json code

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轉換至關簡單,看起來也直觀,僅須要一個轉換器ObjectMapperblog

 

原始數據到Json的轉換內存

假如咱們有原始數據,咱們但願可以直接使用這些數據拼成Json,這個Json之後還能被轉化爲javabeanrem

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);
相關文章
相關標籤/搜索