分享

了解 JSON 格式

 MediaTea 2023-08-21 发布于湖南
一、JSON 基础

JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的数据交换格式,JSON 的设计目的是使得数据的存储和交换变得简单。

JSON 易于人的阅读和书写,同时也易于机器的解析和生成。尽管 JSON 是 JavaScript 的一个子集,但 JSON 是独立于语言的文本格式。

二、JSON 语法

JSON 语法是 JavaScript 语法的子集,JSON 数据的表示方法如下:

数据由键值对构成,键和值之间使用冒号 : 分隔,键必须使用双引号 "" 包围每个键值对之间使用逗号 , 分隔。

大括号 { } 保存对象,方括号 [ ] 保存数组。

例始,以下是一个简单的 JSON 对象,它表示了一个人的信息,包括姓名、年龄和爱好。

{    "姓名": "小明",    "年龄": 20,    "爱好": ["阅读", "音乐", "电影"]}

三、JSON 数据类型

JSON 支持以下数据类型:

字符串

string

由双引号包围的一串 Unicode 字符。

例如:"小明"

数字

number

数或浮点数。

例如:25,或者,3.14。

对象

object

无序的键值对集合。

例如:{"姓名": "小明", "年龄": 25}

数组

array

有序的值集合。

例如:["阅读", "音乐", "电影"]

布尔值

boolean

true false

null

表示空值或无值,写成 null

对象和数组可以嵌套使用,以实现更复杂的数据结构。

{    "name": "中国",    "province": [{        "name": "黑龙江",        "cities": {            "city": ["哈尔滨", "大庆"]        }    }, {        "name": "广东",        "cities": {            "city": ["广州", "深圳", "珠海"]        }    }, {        "name": "台湾",        "cities": {            "city": ["台北", "高雄"]        }    }, {        "name": "新疆",        "cities": {            "city": ["乌鲁木齐"]        }    }]}

可以使用任意文本编辑器,根据 JSON 格式的规则,编写键值对、数组和对象等,然后将编写好的内容保存为一个以 .json 为后缀的文件。

JSON 文件编码通常使用 UTF-8

四、JSON 数据的解释和生成

大多数编程语言都有内置函数可以将 JSON 文本转换为对应语言的数据结构。

例如,在 JavaScript 中,我们可以使用 JSON.parse() 函数将 JSON 文本转换为 JavaScript 对象。

let text = '{"name": "John", "age": 30}';let obj = JSON.parse(text);console.log(obj.name);  // 输出 "John"

再例如,在 Python 中,我们使用 json 模块的 loads 方法将 JSON 数据解析为 Python 对象。

import json
json_string = '{"姓名": "小明", "年龄": 30}'python_obj = json.loads(json_string)print(python_obj["姓名"])  # 输出 "小明"

在上面这个例子中,我们将 JSON 字符串 {"姓名": "小明", "年龄": 30} 转换为了 Python 对象,并打印出了姓名的值。

与解析相反,序列化是将编程语言的数据结构转化为 JSON 文本的过程。

例如,在 JavaScript 中,我们可以使用 JSON.stringify() 函数进行序列化。

let obj = {"name": "John", "age": 30};let text = JSON.stringify(obj);console.log(text);  // 输出 '{"name":"John","age":30}'

再例如,在 Python 中,我们可以使用 json 模块的 dumps 方法将 Python 对象转换为 JSON 字符串。

import json
python_obj = {"name": "John", "age": 30}json_string = json.dumps(python_obj)print(json_string)  # 输出 '{"name""John""age"30}'

五、JSON 文件的读写

以 Python 为例,读取和写入 JSON 文件也是通过 json 模块来实现的。

在下面例子中,我们首先打开名为 data.json 的文件,然后使用 json.load( ) 函数将 JSON 文件的内容转换为 Python 对象。json.load( ) 函数的参数是一个文件对象,它将从这个文件对象中读取 JSON 数据并返回对应的 Python 对象。

import json
# 打开文件并加载为 Python 对象with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f)
print(data)

在下面例子中,我们首先创建了一个 Python 对象 data,然后使用 json.dump( ) 函数将这个 Python 对象转换为 JSON 数据并写入 output.json 文件。

import json
data = { "姓名": "小明", "年龄": 30, "爱好": ["阅读", "音乐", "电影"]}
# 将 Python 对象转换为 JSON 格式,并写入文件with open('output.json', 'w', encoding='utf-8') as f:    json.dump(data, f, ensure_ascii=False, indent=4)

上面例子中,json.dump( ) 函数的第一个参数是要转换的 Python 对象,第二个参数是一个文件对象,它将把转换得到的 JSON 数据写入这个文件对象。ensure_ascii=False 参数使得中文字符能正确地被写入,indent=4 参数表示在输出的 JSON 数据中,使用 4 个空格缩进。

“点赞有美意,赞赏是鼓励”

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多