文章目录

  • 一、Java 对象转换为 JSON
  • 1. 使用步骤
  • 2. 注解
  • 3. 复杂java对象转换
  • 二、JSON 转为 Java对象


一、Java 对象转换为 JSON

1. 使用步骤

使用步骤:
(1)导入jackson的相关jar包
(2)创建Jackson核心对象 ObjectMapper
(3)调用ObjectMapper的相关方法进行转换
	* 转换方法:
		* writeValue(参数1,obj):
		     参数1:
		          File:将obj对象转换为JSON字符串,并保存到指定的文件中
		          Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
		          OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
		 * writeValueAsString(obj):将对象转为json字符串
public class JacksonTest {

    //Java对象转为JSON字符串
    @Test
    public void test1() throws Exception {
        //1.创建Person对象
        Person p  = new Person();
        p.setName("张三");
        p.setAge(23);
        p.setGender("男");

        //2.创建Jackson的核心对象  ObjectMapper
        ObjectMapper mapper = new ObjectMapper();
        //3.转换
           
        String json = mapper.writeValueAsString(p);
        //{"name":"张三","age":23,"gender":"男"}
        //System.out.println(json);//{"name":"张三","age":23,"gender":"男"}



        //writeValue,将数据写到d://a.txt文件中
        //mapper.writeValue(new File("d://a.txt"),p);

        //writeValue.将数据关联到Writer中
        mapper.writeValue(new FileWriter("d://b.txt"),p);
    }
}

2. 注解

* 注解:
	* @JsonIgnore:排除属性。
	* @JsonFormat:属性值得格式化
		* @JsonFormat(pattern = "yyyy-MM-dd")

比如这里给 Person 类添加了一个 birthday 属性:

private Date birthday;

java 将对象转换成int java将对象转成json_java


可以看到,直接显示的格式不是我们期望的,现在可以有两种处理方式

(1)将其排除

java 将对象转换成int java将对象转成json_Java_02


(2)对其进行格式化

java 将对象转换成int java将对象转成json_java_03

3. 复杂java对象转换

* List:数组
* Map:对象格式一致

java 将对象转换成int java将对象转成json_java_04


java 将对象转换成int java将对象转成json_JSON_05

二、JSON 转为 Java对象

(1)导入jackson的相关jar包
(2)创建Jackson核心对象 ObjectMapper
(3)调用 ObjectMapper 的相关方法进行转换
		* readValue(json字符串数据,Class)

java 将对象转换成int java将对象转成json_json_06