java对象与Json字符串的相互转换

时间:2025-01-23 10:18:53

文章目录
对象转换为java 对象
2. Java对象转换JSON
对象转换为java 对象
导入jackson的相关jar包
创建Jackson核心对象 ObjectMapper
调用ObjectMapper的相关方法进行转换

@Test
 public void test5() throws IOException {
     //初始化Json对象
     String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";
     //创建ObjectMapper
     ObjectMapper mapper = new ObjectMapper();
     //转换为java对象
     Person person = (json, );
     (person);
 }


2. Java对象转换JSON
常见的解析器:Jsonlib,Gson,fastjson,jackson
1.导入jackson的相关jar包
2.创建Jackson核心对象 ObjectMapper
3.调用ObjectMapper的相关方法进行转换

public class JsonTest {
    //java对象转换为JSON字符串
    @Test
    public void test1() throws IOException {
        //1.创建Person对象
        Person p = new Person();
         ("gh");
         (20);
         ("女");

         //2.创建jackson的核心对象
        ObjectMapper mapper = new ObjectMapper();

        //调用writeValueAsString方法装换
        //String json = (p);
        //(json);

        //调用writeValue方法,将数据写到文件中
        //(new File("f://"),p);

        //调用writeValue方法,将数据写到字符输出流
        (new FileWriter("f://"),p);
    }
}

List集合转换为Json对象   

 @Test
    public void test3() throws JsonProcessingException {
        Person p = new Person();
        ("gh");
        (20);
        ("女");
        (new Date());

        Person p1 = new Person();
        ("gh");
        (20);
        ("女");
        (new Date());

        Person p2 = new Person();
        ("gh");
        (20);
        ("女");
        (new Date());

        List<Person> ps = new ArrayList<Person>();
        (p);
        (p1);
        (p2);

        //2.转换
        ObjectMapper mapper = new ObjectMapper();
        String json = (ps);
        (json);
    }

Map集合转换为Json对象 

@Test
    public void test4() throws JsonProcessingException {
        Map<String,Object> map = new HashMap<String,Object>();
        ("name","zhnagsan");
        ("age",23);
        ("gender","nv");

        //2.转换
        ObjectMapper mapper = new ObjectMapper();
        String json = (map);
        (json);
    }

使用注解将java对象装换为字符串
@JsonIgnore:排除属性
@JsonFormat:属性值格式化

public class Person {
    private String name;
    private String gender;
    private int age;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
}
public class JsonTest {
@Test
  public void test2() throws JsonProcessingException {
      //1.创建Person对象
      Person p = new Person();
      ("gh");
      (20);
      ("女");
      (new Date());

      //2.转换
      ObjectMapper mapper = new ObjectMapper();
      String json = (p);
      (json);
  }
}