CodeGym /课程 /Python SELF ZH /JSON 入门

JSON 入门

Python SELF ZH
第 23 级 , 课程 0
可用

1.1 JSON 的出现

JSON (JavaScript Object Notation) 是一种用于交换数据的文本格式。它在 2000 年代初期由 Douglas Crockford 设计,因其简单易用而变得流行。

JSON 的主要理念是创建一种人类易于阅读的格式,并且易于程序解析和生成。JSON 最初基于 JavaScript 的语法,但其格式如此通用,因此被许多其他编程语言使用并支持。现在 JSON 可以独立于 JavaScript 使用:它成为各种系统和应用程序数据交换的标准,不管它们是用什么编程语言编写的。

JSON 实际上是用 JavaScript 语言记录对象状态的方式。几乎是这样。这就是为什么对那些为前端编写 API 的人来说,JSON 特别受欢迎。此外,JSON 被广泛用于存储配置文件和日志。

JSON 的主要特点

易读性:

JSON 格式易于人类阅读和理解。这使得它在配置文件中使用,以及在客户端和服务器之间交换数据时非常方便。

语言无关性:

虽然 JSON 最初基于 JavaScript 的语法,但它可以用于任何编程语言。许多编程语言都提供了内置的库来处理 JSON。

解析简单:

解析(来自英文 "parsing")是分析数据结构的过程,通常是文本或代码,用于提取有用信息。在编程中,解析经常用于处理文本数据。 JSON 可以在客户端和服务器端轻松地解析和生成。现在,每种编程语言都有一个库,可以轻松地将对象转换为 JSON 和反向转换。

标准化和明显的领导者:

10 年前,JSON 与 XML 竞争成为 API 的标准。现在 JSON 胜出,成为明显的领导者。在你的后端 API 中,你可以只支持 JSON,这就足够了,即使你的 API 是给其他服务器调用的。

1.2 JSON 的结构

JSON 是成对的 "键-值" 结构,其语法由两个主要结构组成:

对象:对象是不按顺序的 "键-值" 对集合。键是字符串,值可以是 JSON 支持的任何数据类型。


{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Science"],
    "address": {
        "city": "New York",
        "zipCode": "10001"
    }
}

数组/列表:数组是值的有序集合(类似于 Python 中的列表)。值可以是 JSON 支持的任何数据类型。


["Apple", "Banana", "Cherry", 100, 3.14, true]

很像 Python 对象,不是吗?

这就是 JSON 实际上是用 JavaScript 记录数据的标准,而 JavaScript 在当时受到了 Python 的启发。所以你会喜欢使用 JSON。

1.3 JSON 的数据类型

JSON 支持以下数据类型:

字符串:用双引号表示。


"name": "John"

数字:可以是整数或浮点数。


"age": 30

对象:无序的 "键-值" 对集合。


"address": {
    "city": "New York",
    "zipCode": "10001"
}

数组/列表:有序的值集合。


"courses": ["Math", "Science"]

布尔值: truefalse


"isStudent": false

与 Python 不同,truefalse 用小写字母写。

null:表示空值。


"middleName": null

日期和时间:以字符串形式传递。


{
    "datetime": "2023-05-15T14:30:00Z",
    "date": "2023-05-15",
    "time": "14:30:00"
}

以前它们有时会以 UNIX 时间戳的格式表示为数字,但这种方法已经被淘汰了。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION