json转对象,对象转json以及list转json

全篇以阿里fastjson类使用, com.alibaba.fastjson

依赖:

        <!-- 阿里JSON解析器 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.76</version>
        </dependency>

前置

@Data
public class Student {
    private String username;
    private String sex;
    private Integer age;
    private String addres;

    public Student() {
    }
    public Student(String username, String sex, Integer age, String addres) {
        this.username = username;
        this.sex = sex;
        this.age = age;
        this.addres = addres;
    }
}

说明

  1. JSONObject和JSONArray 都继承JSON
  2. java实体类对应JSONObject , list对象对应JSONArray

实体类,list 转 json字符串

String jsonStr = JSONObject.toJSONString(实体类);

String jsonArrayStr = JSONArray.toJSONString(list对象);

实体类,list转json对象

String jsonStr= JSONObject.toJSONString(实体类);
JSONObject jsonObject=JSONObject.parseObject(jsonStr);

String jsonString = JSONArray.toJSONString(list对象);
JSONArray jsonArrayobjects =JSONArray.parseArray(jsonString);

json字符串 转实体类、list

步骤 json字符串先转成json对象,然后json对象在转成实体对象
示例:

    //对象转json字符串
    Student student=new Student("张三","男",25,"北京市海淀区");
    String jsonStr = JSONObject.toJSONString(student);
    
    //json字符串转对象
    JSONObject jsonObject = JSONObject.parseObject(jsonStr);
    Student studentNew = jsonObject.toJavaObject(Student.class);

转成list对象示例:

    //list对象转json字符串
    List<Student> list=new ArrayList<>();
    Student studenOne=new Student("李四","男",22,"山西省太原市");
    Student studenTwo=new Student("小红","女",20,"江西省九江市");
    list.add(studenOne);list.add(studenTwo);
    
    //list先转换成json字符串,json字符串在转成jsonarray对象,然后再转成java list对象
    String jsonArrayStr = JSONArray.toJSONString(list);
    JSONArray jsonArray = JSONObject.parseArray(jsonArrayStr);
    List<Student> listNew = jsonArray.toJavaList(Student.class);

如果帮到你了,麻烦点个赞,或者评论留言你的问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值