使用 Jackson Object Mapper

Pojo 模型

public class Model {
    private String firstName;
    private String lastName;
    private int age;
    /* Getters and setters not shown for brevity */        
}

示例:String to Object

Model outputObject = objectMapper.readValue(
     "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"age\":23}",
     Model.class);
System.out.println(outputObject.getFirstName());
//result: John

示例:物件到字串

String jsonString = objectMapper.writeValueAsString(inputObject));
//result: {"firstName":"John","lastName":"Doe","age":23}

細節

需要匯入語句:

import com.fasterxml.jackson.databind.ObjectMapper;

Maven 依賴:jackson-databind

ObjectMapper 例項

//creating one
ObjectMapper objectMapper = new ObjectMapper();
  • ObjectMapper 是執行緒安全的
  • 建議:擁有一個共享的靜態例項

反序列化:

<T> T readValue(String content, Class<T> valueType)  
  • 需要指定 valueType - 返回將是這種型別
  • 丟擲
    • IOException - 在低階 I / O 問題的情況下
    • JsonParseException - 如果基礎輸入包含無效內容
    • JsonMappingException - 如果輸入的 JSON 結構與物件結構不匹配

用法示例(jsonString 是輸入字串):

Model fromJson = objectMapper.readValue(jsonString, Model.class);

序列化方法:

String writeValueAsString(Object value)

  • 丟擲
    • JsonProcessingException 如果出錯
    • 注意:在 2.1 版之前,throws 子句包含 IOException; 2.1 刪除它。