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

maven依赖包:



    com.alibaba
    fastjson
    1.2.47



     org.projectlombok
     lombok

一: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 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 students = jsonArray.toJavaList(Student.class);
        System.out.println(students.toString());
        //[{"age":10,"birthday":"2019-08-28","id":123,"name":"jack"}]
    }

你可能感兴趣的:(Java)