JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的数据交换格式,JSON 的设计目的是使得数据的存储和交换变得简单。 JSON 易于人的阅读和书写,同时也易于机器的解析和生成。尽管 JSON 是 JavaScript 的一个子集,但 JSON 是独立于语言的文本格式。 二、JSON 语法 JSON 语法是 JavaScript 语法的子集,JSON 数据的表示方法如下: 数据由键值对构成,键和值之间使用冒号 : 分隔,键必须使用双引号 "" 包围。每个键值对之间使用逗号 , 分隔。 大括号 { } 保存对象,方括号 [ ] 保存数组。 例始,以下是一个简单的 JSON 对象,它表示了一个人的信息,包括姓名、年龄和爱好。
三、JSON 数据类型 JSON 支持以下数据类型: 字符串 string 由双引号包围的一串 Unicode 字符。 例如:"小明"。 数字 number 整数或浮点数。 例如:25,或者,3.14。 对象 object 无序的键值对集合。 例如:{"姓名": "小明", "年龄": 25}。 数组 array 有序的值集合。 例如:["阅读", "音乐", "电影"]。 布尔值 boolean true 和 false。 空 null 表示空值或无值,写成 null。 对象和数组可以嵌套使用,以实现更复杂的数据结构。
可以使用任意文本编辑器,根据 JSON 格式的规则,编写键值对、数组和对象等,然后将编写好的内容保存为一个以 .json 为后缀的文件。 JSON 文件编码通常使用 UTF-8。 四、JSON 数据的解释和生成 大多数编程语言都有内置函数可以将 JSON 文本转换为对应语言的数据结构。 例如,在 JavaScript 中,我们可以使用 JSON.parse() 函数将 JSON 文本转换为 JavaScript 对象。
再例如,在 Python 中,我们使用 json 模块的 loads 方法将 JSON 数据解析为 Python 对象。
在上面这个例子中,我们将 JSON 字符串 {"姓名": "小明", "年龄": 30} 转换为了 Python 对象,并打印出了姓名的值。 与解析相反,序列化是将编程语言的数据结构转化为 JSON 文本的过程。 例如,在 JavaScript 中,我们可以使用 JSON.stringify() 函数进行序列化。
再例如,在 Python 中,我们可以使用 json 模块的 dumps 方法将 Python 对象转换为 JSON 字符串。
五、JSON 文件的读写 以 Python 为例,读取和写入 JSON 文件也是通过 json 模块来实现的。 在下面例子中,我们首先打开名为 data.json 的文件,然后使用 json.load( ) 函数将 JSON 文件的内容转换为 Python 对象。json.load( ) 函数的参数是一个文件对象,它将从这个文件对象中读取 JSON 数据并返回对应的 Python 对象。
在下面例子中,我们首先创建了一个 Python 对象 data,然后使用 json.dump( ) 函数将这个 Python 对象转换为 JSON 数据并写入 output.json 文件。
上面例子中,json.dump( ) 函数的第一个参数是要转换的 Python 对象,第二个参数是一个文件对象,它将把转换得到的 JSON 数据写入这个文件对象。ensure_ascii=False 参数使得中文字符能正确地被写入,indent=4 参数表示在输出的 JSON 数据中,使用 4 个空格缩进。 |
|