JSON转换

119 阅读2分钟

JSON是什么格式?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON 基于 JavaScript 的一个子集,但独立于编程语言,广泛用于数据传输和存储。

JSON的基本语法

JSON由两种结构组成:

  1. 对象(Object) :用花括号 {} 包含的键值对集合。键是字符串,值可以是字符串、数字、对象、数组、布尔值或 null
  2. 数组(Array) :用方括号 [] 包含的值的有序集合。值可以是字符串、数字、对象、数组、布尔值或 null

示例:

{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Science"],
    "address": {
        "street": "123 Main St",
        "city": "Anytown"
    }
}

用户看到的和JSON的区别

用户通常看到的是数据的表现形式,例如网页上的表格或应用程序中的信息。而JSON是一种数据格式,通常用于在服务器和客户端之间进行数据交换。用户不会直接看到JSON格式的数据,但开发者会在代码中处理这些数据。

JSON转换过程

JSON转换通常涉及将JSON字符串解析为编程语言中的对象,或将对象序列化为JSON字符串。以Java为例,常用的库有Gson和Jackson。

使用Gson进行JSON转换

  1. 将JSON字符串转换为Java对象(反序列化)
import com.google.gson.Gson;
​
public class JsonExample {
    public static void main(String[] args) {
        String jsonString = "{"name":"John","age":30,"isStudent":false}";
​
        Gson gson = new Gson();
        Person person = gson.fromJson(jsonString, Person.class);
​
        System.out.println(person.getName()); // 输出:John
    }
}
​
class Person {
    private String name;
    private int age;
    private boolean isStudent;
​
    // getter 和 setter 方法
    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 boolean isStudent() {
        return isStudent;
    }
​
    public void setStudent(boolean student) {
        isStudent = student;
    }
}
  1. 将Java对象转换为JSON字符串(序列化)
import com.google.gson.Gson;
​
public class JsonExample {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John");
        person.setAge(30);
        person.setStudent(false);
​
        Gson gson = new Gson();
        String jsonString = gson.toJson(person);
​
        System.out.println(jsonString); // 输出:{"name":"John","age":30,"isStudent":false}
    }
}