JSON 使用学习笔记

什么是JSON?

JSON(JavaScript Object Notation),一种轻量级的数据交换格式,易于理解和编写,广泛用于前后端通信、数据存储和配置文件等场景。

JSON基本结构

JSON由两种数据结构组成:对象和数组。

对象

对象以{}括起来,键值对之间用冒号分隔,键和值用逗号分隔。

例如:

jsonCopy Code
{ "name": "Alice", "age": 20, "hobby": ["reading", "swimming"] }

数组

数组以[]括起来,元素之间用逗号分隔。

例如:

jsonCopy Code
[ { "name": "Alice", "age": 20 }, { "name": "Bob", "age": 22 } ]

JSON常用操作

序列化和反序列化

将对象或数组转换为JSON字符串的过程称为序列化,反之则称为反序列化。

在JavaScript中,可以使用JSON对象的方法JSON.stringify()JSON.parse()实现序列化和反序列化。

例如,将上方“对象”示例转换为JSON字符串:

javascriptCopy Code
const obj = { "name": "Alice", "age": 20, "hobby": ["reading", "swimming"] }; const jsonString = JSON.stringify(obj); console.log(jsonString); // 输出:{"name":"Alice","age":20,"hobby":["reading","swimming"]}

反之,将JSON字符串转换为对象:

javascriptCopy Code
const jsonString = '{"name":"Alice","age":20,"hobby":["reading","swimming"]}'; const obj = JSON.parse(jsonString); console.log(obj); // 输出:{ name: 'Alice', age: 20, hobby: [ 'reading', 'swimming' ] }

嵌套与访问

JSON对象和数组可以无限嵌套,可以使用.[]操作符访问嵌套属性或元素。

例如,访问上方“对象”示例中的name属性和hobby数组的第二个元素:

javascriptCopy Code
const obj = { "name": "Alice", "age": 20, "hobby": ["reading", "swimming"] }; console.log(obj.name); // 输出:Alice console.log(obj.hobby[1]); // 输出:swimming

JSON实例

以下是一个简单的JSON示例,表示一个电影列表:

jsonCopy Code
[ { "title": "The Shawshank Redemption", "year": 1994, "director": "Frank Darabont", "cast": ["Tim Robbins", "Morgan Freeman"] }, { "title": "Forrest Gump", "year": 1994, "director": "Robert Zemeckis", "cast": ["Tom Hanks", "Robin Wright"] } ]

可以使用上述的JSON常用操作对这个电影列表进行序列化、反序列化、嵌套和访问。