@Test
public void TestJackson() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
CategoryPO categoryPO = new CategoryPO();
categoryPO.setId(1L).setParentId(1L).setDepth(1L).setName("绿茶");
String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(categoryPO);
System.out.println(jsonStr);
System.out.println("------------------------");
CategoryPO categoryPO1 = mapper.readValue(jsonStr,CategoryPO.class);
System.out.println(categoryPO1);
}
这个测试方法是一个使用Jackson库进行JSON序列化和反序列化的测试。具体步骤如下:
-
创建一个
ObjectMapper
对象,用于处理JSON数据。ObjectMapper
是Jackson库中的核心类,它提供了将Java对象转换为JSON字符串以及将JSON字符串转换为Java对象的功能。 -
创建一个
CategoryPO
对象,并设置其属性值(需要自己新建java类,如果需要在达到上述代码的链式set,需要在上面加上@Accessors(chain = true))。CategoryPO
是一个自定义的Java类,可能表示一个分类信息。在这个例子中,我们设置了它的id
、parentId
、depth
和name
属性。 -
使用
ObjectMapper
的writerWithDefaultPrettyPrinter()
方法将CategoryPO
对象转换为格式化的JSON字符串。这个方法返回一个JsonGenerator
对象,我们可以使用它来生成JSON字符串。通过调用writeValueAsString()
方法,我们将CategoryPO
对象转换为JSON字符串,并将其赋值给变量jsonStr
。 -
打印转换后的JSON字符串。这可以帮助我们查看生成的JSON字符串是否符合预期。
-
打印分隔符。在输出结果时,可以使用分隔符来区分不同的部分,使输出更加清晰易读。
-
使用
ObjectMapper
的readValue()
方法将JSON字符串反序列化为CategoryPO
对象。这个方法接受两个参数:一个是JSON字符串,另一个是要反序列化的目标类的Class对象。在这个例子中,我们将jsonStr
作为第一个参数,CategoryPO.class
作为第二个参数。执行这个方法后,会返回一个新的CategoryPO
对象,并将其赋值给变量categoryPO1
。 -
打印原始的
CategoryPO
对象。这可以帮助我们验证反序列化操作是否正确地还原了原始对象的属性值。 -
打印反序列化后的
CategoryPO
对象。这可以帮助我们验证反序列化操作是否正确地还原了原始对象的属性值。
总之,这个测试方法目的是使用Jackson库能正确地将Java对象序列化为JSON字符串,将JSON字符串反序列化为Java对象。