简介

JSON (JavaScript Object Notation) 是一个轻量级的数据交换格式。这种格式易于人们阅读和书写,也易于计算机解析和生成。

JSON 由两种结构组成:

  • 一种是由多对 名字 / 值 组成的集合。在各种编程语言中,也被称为对象,纪录,结构,字典,哈希表, 关联数组。
  • 一种是包含多个值的顺序表。在大多数编程语言中,也被称为数组,容器,列表或序列。

格式

在 JSON 中,它们以如下的形式展示:

  • 一个对象(object )是一个由多对 名字 / 值 组成的无序集合。名字就是一个字符串。一个对象以{开始,以}结束。名字和值之间用:分隔,每对 名字 / 值 之间用,分隔。
    对象
  • 一个数组(array )是由多个值组成的顺序表。一个数组以[开始,以]结束。每个值之间用,分隔。
    数组
  • 一个(value)可以是一个由双引号"括起来的字符串,或者一个数字,或者true或者false或者null,或者一个对象和数组。这些结构可以嵌套。
    值
  • 一个字符串(string)是0或多个 Unicode 字符组成的序列,它被双引号"包围,使用反斜杠\做转义字符。一个字符表示为一个单字符的字符串。它非常像 C 或 Java 中的字符串。如下图所示:
    字符串
  • 一个数字(number)非常像 C 或 Java 中的数字,除了它不支持八进制和十六进制的形式。如下图所示:
    数字

例子

以下是一个 JSON 格式的字符串(也是一个 JSON 对象),表示的是一个显示器以及它支持的分辨率。这个对象中包含两对名字 / 值:

  • 第一对 名字 / 值 的名字是“name”,值是字符串“Awesome 4K”。它表示显示器的名称。
  • 第二对 名字 / 值 的名字是“resolutions”,值是一个数组,数组中包含三个对象。它表示该显示器支持的三种分辨率 1280x720,1920x1080,3840x2160。
{
    "name": "Awesome 4K",
    "resolutions": [
        {
            "width": 1280,
            "height": 720
        },
        {
            "width": 1920,
            "height": 1080
        },
        {
            "width": 3840,
            "height": 2160
        }
    ]
}

使用场景

JSON 最常使用的场景有两个:

  • 一是作为 RESTful API 数据交互的格式。
  • 二是用作序列化。在 Python 中,使用自带的 json 库中的 dumps() 函数可以将字典或序列对象序列化成 JSON 格式。使用 loads() 函数可以将 JSON 格式反序列化成 Python 对象。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐