JSON是什么格式?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON 基于 JavaScript 的一个子集,但独立于编程语言,广泛用于数据传输和存储。
JSON的基本语法
JSON由两种结构组成:
- 对象(Object) :用花括号
{}包含的键值对集合。键是字符串,值可以是字符串、数字、对象、数组、布尔值或null。 - 数组(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转换
- 将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;
}
}
- 将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}
}
}