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