专业的JAVA编程教程与资源

网站首页 > java教程 正文

第27天|Java入门有野,json操作(java的json解析几种方法)

temp10 2024-10-10 12:18:38 java教程 7 ℃ 0 评论

在Java中并没有内置Json的操作库,但你可以下载优秀的第三方类库。在没听说阿里巴巴开发的JSON库FastJson,性能十分优秀之前,好多企业用的是谷歌公司提供的Gson。

既然好多人喜欢用FastJson,那咱就以它为例,来说一说,Java是如何处理Json的。不过,在应用之前,你需要到https://github.com/alibaba/fastjson下载jar开发包并导入到运行环境中(大多数开发工具都支持导入jar包)。

第27天|Java入门有野,json操作(java的json解析几种方法)

27.1 对象和JSON

在要使用fastjson的类中,引入com.alibaba.fastjson.JSON,调用toJSONString方法即可将对象转成json;调用parseObject方法即可将json转成对象。简单到你想哭了没?

import java.io.Serializable;

public class Student implements Serializable {

    //姓名
    private String name;
    //年龄
    private int age;
    //年级
    private String grade;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }
}

为了方便调用Student类,我将其放在TestJson.java同一目录下。

import com.alibaba.fastjson.JSON;

public class TestJson {
    public static void main(String[] args) {
        //构建Student
        Student student = new Student();
        student.setName("王牛");
        student.setAge(16);
        student.setGrade("初三");
        //对象转json
        String jsonString = JSON.toJSONString(student);
        System.out.println(jsonString);
        //json转对象
        Student student2 = JSON.parseObject(jsonString, Student.class);
        System.out.println(student2.getName());
    }
}

输出结果

{"age":16,"grade":"初三","name":"王牛"}

王牛

27.2 列表和JSON

一个班级不可能只有一个学生,存放多个学生信息,你可以用列表(List)的方式。如果你要将List转成json,还是调用toJSONString()方法,如果反过来,就是将Json转成列表的话,那你就要调用parseArray方法了。为了方便声明Student,咱为其加上构造方法。

import java.io.Serializable;

public class Student implements Serializable {
    public Student(String name, int age, String grade) {
        this.name = name;
        this.age = age;
        this.grade = grade;
    }

    //姓名
    private String name;
    //年龄
    private int age;
    //年级
    private String grade;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }
}

通过构造函数,可以一次性初始化多个属性,你学会了没?

import com.alibaba.fastjson.JSON;

import java.util.List;
import java.util.ArrayList;


public class TestJson {
    public static void main(String[] args) {
        List<Student> list = new ArrayList<>();
        Student student1 = new Student("张三", 15, "初三");
        Student student2 = new Student("李斯", 16, "初三");
        Student student3 = new Student("王武", 17, "初三");
        list.add(student1);
        list.add(student2);
        list.add(student3);
        //List转json
        String jsonString = JSON.toJSONString(list);
        System.out.println(jsonString);
        //json转List
        //解析json字符串
        List<Student> student = JSON.parseArray(jsonString, Student.class);
        System.out.println(student.get(1).getName());
    }
}

输出结果

[{"age":15,"grade":"初三","name":"张三"},{"age":16,"grade":"初三","name":"李斯"},{"age":17,"grade":"初三","name":"王武"}]

李斯

好了,有关Java操作Json内容就这么多了,如果你觉得老陈这样讲还可以的话,你就转发和点赞,你的轻轻一点,就是对老陈继续创作的最大鼓励和支持。

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我在分享Python,前端、Java和App方面的干货。关注我,没错的。


#Java##APP##程序员##Web##Spring#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表