JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。它通常用于在服务器和客户端之间交换数据,特别是在 Web 应用中。
JSON 格式基于 JavaScript 对象表示法,但它是语言独立的,广泛用于多种编程语言中。JSON 使用文本格式来存储和表示数据,通常用于存储配置文件、数据库交互和API响应等场景。
JSON 的基本结构
JSON 由键值对组成,格式类似于 JavaScript 对象,但有一些规则:
- 键(key):必须是字符串,放在双引号中。
- 值(value):可以是字符串、数字、布尔值(
true
或false
)、数组、对象或null
。 - 对象:由一对大括号
{}
包围,表示一个键值对集合。 - 数组:由一对方括号
[]
包围,表示一个值的有序集合。
示例
{"name": "John", "age": 30,"isStudent": false,"courses": ["Math", "Science"],"address": {"street": "123 Main St","city": "New York"}
}
如何使用 JSON:
- 读取和解析 JSON:许多编程语言都有内置的库来解析和生成 JSON。例如,在 Java 中,可以使用
Jackson
或Gson
库,在 JavaScript 中,JSON.parse()
和JSON.stringify()
方法可以处理 JSON。
Jackson
Jackson 是一个高效且功能强大的 JSON 处理库,广泛用于 Java 项目中。它提供了丰富的功能,能够处理各种类型的 JSON 数据,支持复杂的对象映射、流式解析、树状模型等。
示例
import com.fasterxml.jackson.databind.ObjectMapper;class Person {public String name;public int age;// 构造函数、getter、setter等
}public class JacksonExample {public static void main(String[] args) throws Exception {// 创建 ObjectMapper 实例ObjectMapper objectMapper = new ObjectMapper();// 序列化:Java 对象转 JSON 字符串Person person = new Person();person.name = "John";person.age = 30;String json = objectMapper.writeValueAsString(person);System.out.println(json);// 反序列化:JSON 字符串转 Java 对象String jsonInput = "{\"name\":\"John\",\"age\":30}";Person personFromJson = objectMapper.readValue(jsonInput, Person.class);System.out.println(personFromJson.name + " - " + personFromJson.age);}
}
输出
{"name":"John","age":30}