使用FastJson进行JSON字符串、JSON对象与Java对象之间的转换

maven依赖包:
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
</dependency>

<dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
</dependency>
一:Java对象
package com.example.demo.json;


import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDate;

@Setter
@Getter
public class Student implements Serializable {

    private Long id;
    private String name;
    private LocalDate birthday;
    private Integer age;
    
    @Override
    public String toString() {
        return JSONObject.toJSONString(this);
    }
}


package com.example.demo.json;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

@Setter
@Getter
public class Clazz implements Serializable {

    private Long id;
    private String name;
    private List<Student> students;
    
    @Override
    public String toString() {
        return JSONObject.toJSONString(this);
    }
}
二:Java对象转JSON字符串
private static void java2String() {
        Student student = new Student();
        student.setId(123L);
        student.setName("jack");
        student.setBirthday(LocalDate.now());
        student.setAge(10);
        Clazz clazz = new Clazz();
        clazz.setId(123L);
        clazz.setName("三年二班");
        clazz.setStudents(Lists.newArrayList(student));

        String jsonString = JSONObject.toJSONString(clazz);
        System.out.println(jsonString);
    	//{"id":123,"name":"三年二班","students":[{"age":10,"birthday":"2019-08-28","id":123,"name":"jack"}]}
    }
三:JSON字符串转JSON对象
private static void string2Json() {
        String jsonString = "{\"id\":123,\"name\":\"三年二班\",\"students\":[{\"age\":10,\"birthday\":\"2019-08-28\",\"id\":123,\"name\":\"jack\"}]}\n";
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
        String clazzName = jsonObject.getString("name");
        System.out.println("clazzName:" + clazzName);
        //clazzName:三年二班
    }
四:JSON字符串转Java对象
private static void string2Java() {
        String jsonString = "{\"id\":123,\"name\":\"三年二班\",\"students\":[{\"age\":10,\"birthday\":\"2019-08-28\",\"id\":123,\"name\":\"jack\"}]}\n";
        Clazz clazz = JSONObject.parseObject(jsonString, Clazz.class);
        System.out.println(clazz.toString());
        //{"id":123,"name":"三年二班","students":[{"age":10,"birthday":"2019-08-28","id":123,"name":"jack"}]}
    }
五:JSON对象转Java对象
private static void json2Java() {
        String jsonString = "{\"id\":123,\"name\":\"三年二班\",\"students\":[{\"age\":10,\"birthday\":\"2019-08-28\",\"id\":123,\"name\":\"jack\"}]}\n";
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
        System.out.println(jsonObject.getString("name"));
        //三年二班
        //json转数组
        JSONArray jsonArray = jsonObject.getJSONArray("students");
        List<Student> students = jsonArray.toJavaList(Student.class);
        System.out.println(students.toString());
        //[{"age":10,"birthday":"2019-08-28","id":123,"name":"jack"}]
    }
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值