为了方便转换,Jackson提供了一些类,可以将JSON字符串自动转换为Java对象和将Java对象自动转换为JSON格式字符串。以下是一些常用的Jackson转换类:
- ObjectMapper类:是Jackson提供的最常用的转换类。它可以将Java对象实例序列化为JSON格式字符串,并将JSON格式字符串反序列化为Java对象。该类包含序列化和反序列化的所有功能,可以方便地进行对象和JSON字符串之间的转换。
示例一:将Java对象序列化为JSON格式字符串
ObjectMapper objectMapper = new ObjectMapper();
User user = new User("Tom", 20);
String jsonString = objectMapper.writeValueAsString(user);
示例二:将JSON格式字符串反序列化为Java对象
String jsonStr = "{\"name\":\"Tom\",\"age\":20}";
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonStr, User.class);
- JsonGenerator类:可以将Java对象转化为JSON格式,其内部实现通过利用ObjectMapper实现的序列化功能。
示例三:使用JsonGenerator生成JSON格式字符串:
StringWriter stringWriter = new StringWriter();
JsonGenerator jsonGenerator = new JsonFactory().createGenerator(stringWriter);
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("name", "Tom");
jsonGenerator.writeNumberField("age", 20);
jsonGenerator.writeEndObject();
jsonGenerator.flush();
String jsonString = stringWriter.toString();
- JsonParser类:是Jackson提供的用于将JSON格式字符串解析成Java对象的类。
示例四:将JSON格式字符串解析成Java对象
String jsonStr = "{\"name\":\"Tom\",\"age\":20}";
JsonParser jsonParser = new JsonFactory().createParser(jsonStr);
jsonParser.nextToken();
User user = new User();
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
String fieldName = jsonParser.getCurrentName();
if ("name".equals(fieldName)) {
jsonParser.nextToken();
user.setName(jsonParser.getValueAsString());
} else if ("age".equals(fieldName)) {
jsonParser.nextToken();
user.setAge(jsonParser.getValueAsInt());
}
}
以上是Jackson中常用的类和示例,可以根据需要选择合适的类和方法来实现JSON字符串与Java对象的相互转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jackson中json格式的字符串与对象的互相转换方式 - Python技术站