fastjson和实体、Map、List的转换写法

一、fastjson简介

FastJson是阿里巴巴的开源JSON解析库,使用Java 语言编写的高性能功能完善的 JSON 库,对于序列化和反序列化都有很高的性能,是目前Java语言中最快的JSON库,也是现在最受欢迎的json库。

二、json对象常用写法

1、maven引入

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.51</version>
</dependency>

2、使用场景

基础类

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

1、json字符串转成json对象,通过jsonObject 获取各种属性。

    public static void demo1() {
        String str = "{\"status\":true,\"data\":[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}],\"code\":200}";
        //字符串转成JSONObject
        JSONObject jsonObject = JSON.parseObject(str);
        //获得JSONObject的某个属性
        Boolean status = jsonObject.getBoolean("status");
        //获得JSONObject里的JSONArray
        JSONArray jsonArray = jsonObject.getJSONArray("data");
        //JSONArray转字符串
        String toJSONString = jsonArray.toJSONString();
    }

2、json字符串转Map对象,方便根据key取数据

 public static void demo2() {
	 String str = "{\"status\":true,\"data\":[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}],\"code\":200}";
     JSONObject jsonObject = JSON.parseObject(str);
     Map<String, Object> map = jsonObject;
     List<Map<String, Object>> data = (List<Map<String, Object>>) map.get("data");
     System.out.println(data);
     System.out.println(map.get("status"));
    }

3、json字符串转JavaBean

   public static void demo3() {
       String s = "{\"name\":\"张刚\",\"age\":\"2\"}";
       Student student = JSON.parseObject(s, Student.class);
       System.out.println(student);
   }

4、json字符串转成List-JavaBean的集合

    public static void demo4() {
        String s = "[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}]";
        List<Student> list = JSON.parseArray(s, Student.class);
        list.stream().forEach(System.out::println);
        System.out.println("------------------");
        List<Map> list2 = JSON.parseArray(s, Map.class);
        list2.stream().forEach(System.out::println);
    }

5、 json字符串转成List-Map的集合

    public static void demo5() {
        String s = "[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}]";
        //第一种方式
        List<Map> list1 = JSON.parseArray(s, Map.class);
        list1.stream().forEach(System.out::println);
        //第二种方式
        List<Map<String, Object>> list2 = JSONArray.parseObject(s, List.class);
        list2.stream().forEach(System.out::println);
        //第三种方式
        List<Map<String, Object>> list3 = (List<Map<String, Object>>) JSONArray.parse(s);
        list3.stream().forEach(System.out::println);
    }

6、Object对象转成json字符串

    public static void demo6() {
        Map<String,String> map = new HashMap<>();
        List<Map<String,String>> list = new ArrayList<>();
        //JSON.toJSONString方法可以把任何对象转成json字符串
        String mapString = JSON.toJSONString(map);
        String listString = JSON.toJSONString(list);
    }

7、jsonArray转List-javaBean、List-Map

    public static void demo7() {
        String str = "{\"status\":true,\"data\":[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}],\"code\":200}";
        JSONObject jsonObject = JSON.parseObject(str);
        JSONArray jsonArray = jsonObject.getJSONArray("data");
        //jsonArray转List-javaBean
        List<Student> student= jsonArray.toJavaList(Student.class);
        //jsonArray转List-Map
        List<Map> map= jsonArray.toJavaList(Map.class);
        System.out.println(student);
        System.out.println(map);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北漂IT民工_程序员_ZG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值