【Java】json JavaBean

本文详细介绍了如何使用FastJson进行JSON字符串与JSONObject、JSONArray以及JavaBean之间的转换。通过实例展示了简单、数组类型以及复杂类型的JSON字符串转化为JSONObject的方法,并提供了将JSON转换为JavaBean的示例代码,包括单个对象、列表对象以及复杂结构对象的转换。
摘要由CSDN通过智能技术生成

FastJson中String、Json、JavaBean

本文来源为:https://www.cnblogs.com/cdf-opensource-007/p/7106018.html

FastJson提供的三个主要类

JSON

fastJson 的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

JSONObject

fastJson提供的json对象。

JSONArray

fastJson提供json数组对象。

JSONObject与JSONArray

SONObject和JSONArray继承了JSON

我们可以把JSONObject当成一个Map<String,Object>来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作。

同样我们可以把JSONArray当做一个List,可以把JSONArray看成JSONObject对象的一个集合。

JsonString转成JSONObject 代码示例

1. 简单json字符串转化成JSONObject
String jsonStr = "{\"name\":\"wang\",\"age\":\"18\"}";
    // 1. 简单json字符串转化成JSONObject
    String jsonStr = "{\"name\":\"wang\",\"age\":\"18\"}";
    FastJsonUtil.jsonStrToJSONObject(jsonStr);

	// 以下即jsonStrToJSONObject方法()
    /*
    * 将简单的json字符串转化成JSONObject对象
    * */
    public static void jsonStrToJSONObject(String jsonStr){
        System.out.println("将简单的json字符串转化成JSONObject对象");
        // 1. 对于简单的json字符串,直接进行调用JSON的parseObject方法即可
        JSONObject jsonObject = JSON.parseObject(jsonStr);
        // 2. 需要取出相应的数据,直接调用方法 JSONObject getString()方法即可
        String name = jsonObject.getString("name");
        String age = jsonObject.getString("age");
        System.out.println("name:"+ name + ",age:" + age);
    }
2. 将数组类型的json字符串转化成JSONObject
String jsonStrArr = "[{\"name\":\"lily\",\"age\":14},{\"name\":\"lucy\",\"age\":15}]";
    // 2. 将数组类型的json字符串转化成JSONObject
    String jsonStrArr = "[{\"name\":\"lily\",\"age\":14},{\"name\":\"lucy\",\"age\":15}]";
    FastJsonUtil.jsonStrArrToJSONObject(jsonStrArr);

	/*
    * 将数组类型的json字符串转化成JSONObject对象
    * */
    public static void jsonStrArrToJSONObject(String jsonStrArr){
        System.out.println("将数组类型的json字符串转化成JSONObject对象");
        // 1. 调用JSON的parseArray方法进行转化
        JSONArray jsonArray = JSON.parseArray(jsonStrArr);
        // 2. 遍历得到jsonArray的所有项
        for(int i = 0;i<jsonArray.size();i++){
            // 3.通过调用getJSONObject方法来得到jsonArray的每一项
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            System.out.println(jsonObject);
        }
    }
3. 将包含多种类型的json字符串转化成JSONObject对象
String jsonComplex = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";
    // 3.将复杂类型的json字符串转化成JSONObject对象
    String jsonComplex = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";
    FastJsonUtil.jsonStrComplexToJSONObject(jsonComplex);

     public static void jsonStrComplexToJSONObject(String jsonStrComplex){
            System.out.println("将包含多种类型的json字符串转化成JSONObject对象");
            // 1. 对于复杂的json字符串,首先同样是进行解析成JSONObject,然后再进行“分层”解析
            JSONObject jsonObject = JSON.parseObject(jsonStrComplex);
            String teacherName = jsonObject.getString("teacherName");
            Integer teacherAge = jsonObject.getInteger("teacherAge");
            JSONObject course = jsonObject.getJSONObject("course");
            JSONArray students = jsonObject.getJSONArray("students");

            System.out.println("teacherName:" + teacherName);
            System.out.println("teacherAge:" + teacherAge);
            System.out.println("course:" + course);
            System.out.println("students:" + students);
        }

JSONObject转化成JavaBean 代码示例

1. 简单json字符串转化成JavaBean

调用JSON.parseObject(jsonStr,实体类.class)

String jsonStr = "{\"name\":\"wang\",\"age\":\"18\"}";

实体类

package fastJson.pojo;

public class Person {
    private String name;
    private String age;

    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}
    // 将字符串映射到实例类
    FastJsonUtil.jsonStrToJavaBean(jsonStr);

 	/*
    * 对于简单类型的json字符串映射到javaBean上
    * */
    public static void jsonStrToJavaBean(String json){
        // 调用JSON.parseObject(jsonStr,实体类.class)
        Person person = JSON.parseObject(json, Person.class);
        System.out.println(person);
    }
2. 数组类型的json字符串转化成javaBean
String jsonStrArr = "[{\"name\":\"lily\",\"age\":14},{\"name\":\"lucy\",\"age\":15}]";

实体类依然为Person

 	// 将字符串映射到实体类
	FastJsonUtil.jsonStrArrToJavaBean(jsonStrArr);
 	/*
    * 对于数组类型的json字符串映射到javaBean上
    * */
    public static void jsonStrArrToJavaBean(String jsonStrArr){
        // 调用方法parseArray(jsonStrArr,list集合元素类型.class)
        List<Person> personList = JSON.parseArray(jsonStrArr, Person.class);
        // 迭代器遍历
        Iterator<Person> iterator = personList.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
3. 复杂类型json字符串转化成JavaBean
String jsonComplex = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

实体类

Person

package fastJson.pojo;

public class Person {
    private String name;
    private String age;

    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

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

Course

package fastJson.pojo;

public class Course {
    private String courseName;
    private Integer code;

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    @Override
    public String toString() {
        return "Course{" +
                "courseName='" + courseName + '\'' +
                ", code=" + code +
                '}';
    }
}

Teacher

package fastJson.pojo;

import java.util.List;

public class Teacher {
    private String teacherName;
    private Integer teacherAge;
    private Course course;
    protected List<Person> students;

    public Teacher() {
    }

    public Teacher(String teacherName, Integer teacherAge, Course course, List<Person> students) {
        this.teacherName = teacherName;
        this.teacherAge = teacherAge;
        this.course = course;
        this.students = students;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public Integer getTeacherAge() {
        return teacherAge;
    }

    public void setTeacherAge(Integer teacherAge) {
        this.teacherAge = teacherAge;
    }

    public Course getCourse() {
        return course;
    }

    public void setCourse(Course course) {
        this.course = course;
    }

    public List<Person> getStudents() {
        return students;
    }

    public void setStudents(List<Person> students) {
        this.students = students;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "teacherName='" + teacherName + '\'' +
                ", teacherAge=" + teacherAge +
                ", course=" + course +
                ", students=" + students +
                '}';
    }
}
  FastJsonUtil.jsonStrComplexToJavaBean(jsonComplex);
  /*
    * 将复杂类型的json字符串映射到JavaBean上
    * */
    public static void jsonStrComplexToJavaBean(String jsonStrComplex){
        Teacher teacher = JSON.parseObject(jsonStrComplex, Teacher.class);
        System.out.println(teacher);
    }
4. 总结

通过调用JSON的parseObject方法时候,传递需要映射的实体类的.class对象进行映射即可

补充

1,对于**JSON对象(即JSONObject)**与JSON格式字符串的转换可以直接用 **toJSONString()**这个方法。

2,javaBean与JSON格式字符串之间的转换要用到:JSON.toJSONString(obj);

3,javaBean与json对象间的转换使用:JSON.toJSON(obj),然后使用强制类型转换,JSONObject或者JSONArray。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值