JSON解析器Jackson_java对象转json_List&Map与Json转java对象

1.复杂java对象转换

  1.List:数组
  2.Map:对象格式一致

复制代码
package org.example.text;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.example.domin.Person;
import org.junit.Test;

import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

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();

        /**
         * 转换方法:
         *      writeValue(参数1,Obj):
         *          参数1:
         *              File:将obj对象转换为Json字符串,并保存到指定的文件中
         *              Writer:将obj对象转换为Json字符串,并将json数据填充到字符输出流中
         *              OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
         *      writeValueAsString(Obj):将对象转为json字符串
         */
        String json = mapper.writeValueAsString(p);
        System.out.println(json);

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

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

    @Test
    public void test2() throws Exception{
        //1.创建Person对象
        Person p = new Person();
        p.setName("张三");
        p.setAge(23);
        p.setGender("男");
        p.setBirthday(new Date());

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

    @Test
    public void test3() throws Exception{
        //1.创建Person对象
        Person p = new Person();
        p.setName("张三");
        p.setAge(23);
        p.setGender("男");
        p.setBirthday(new Date());

        Person p1 = new Person();
        p1.setName("张三");
        p1.setAge(23);
        p1.setGender("男");
        p1.setBirthday(new Date());

        Person p2 = new Person();
        p2.setName("张三");
        p2.setAge(23);
        p2.setGender("男");
        p2.setBirthday(new Date());

        //创建List集合
        ArrayList<Person> ps = new ArrayList<>();
        ps.add(p);
        ps.add(p1);
        ps.add(p2);

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

        System.out.println(json);
    }

    @Test
    public void test4() throws Exception{
        //1.创建Map对象
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name","张三");
        map.put("age",23);
        map.put("gender","男");
        //2.转换
        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(map);
        System.out.println(json);
    }

}
复制代码

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

复制代码
 //演示Json字符串转为java对象
    @Test
    public void test5() throws Exception{
        //1.初始化Json字符串
        String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";
        //2.创建一个ObjectMapper对象
        ObjectMapper mapper = new ObjectMapper();
        //3.转换为java对象
        Person person = mapper.readValue(json, Person.class);
        System.out.println(person);
    }
复制代码

 

posted @   夫君  阅读(129)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示