使用 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 删除它。