JSON格式化






JSON 简介

JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式,易于人们读写,也易于机器解析和生成。它基于 JavaScript 的一个子集,但可被多种编程语言使用,包括但不限于 JavaScript、Python、Java、C#、Ruby 等。JSON 主要用于不同系统之间的数据传输,尤其在网络应用中,是服务器和客户端之间传输数据的常用格式。

JSON 数据结构

1. 对象

对象以花括号 {} 开始和结束,包含多个键值对,键值对之间用逗号分隔。键是字符串,值可以是任何 JSON 数据类型(字符串、数字、对象、数组、布尔值或 null)。

{
    "名称": "张三",
    "年龄": 25,
    "城市": "北京",
    "宠物": ["狗", "猫"],
    "地址": {
        "街道": "中山路 123 号",
        "邮编": "10001"
    }
}
        

在这个例子中,"名称""年龄""城市""宠物""地址" 是键,它们对应的值分别是 "张三"(字符串)、25(数字)、"北京"(字符串)、["狗", "猫"](数组)和一个包含街道和邮编信息的对象。

2. 数组

数组以方括号 [] 开始和结束,包含零个或多个元素,元素之间用逗号分隔,元素可以是任何 JSON 数据类型。

["苹果", "香蕉", "樱桃"]

这个数组包含三个元素,都是字符串类型。

3. 值

值可以是以下几种类型:

JSON 的优点

使用场景

1. Web 开发

在 RESTful API 中,服务器通常使用 JSON 格式向客户端返回数据。例如,当你在浏览器中向服务器发送请求时,服务器可能会返回如下的 JSON 响应:

{
    "状态": "成功",
    "数据": [
        {
            "编号": 1,
            "标题": "产品 1",
            "价格": 100
        },
        {
            "编号": 2,
            "标题": "产品 2",
            "价格": 200
        }
    ]
}
        

客户端可以使用 JavaScript 的 JSON.parse() 方法将 JSON 字符串转换为 JavaScript 对象进行处理。

2. 配置文件

一些应用程序使用 JSON 作为配置文件格式,因为它易于编写和解析。例如:

{
    "服务器": {
        "端口": 8080,
        "主机": "localhost"
    },
    "数据库": {
        "名称": "mydb",
        "用户": "管理员",
        "密码": "秘密"
    }
}
        

在编程语言中使用 JSON

JavaScript

使用 JSON.parse() 将 JSON 字符串转换为 JavaScript 对象:

let jsonString = '{"名称":"张三","年龄":25}';
let jsonObj = JSON.parse(jsonString);
console.log(jsonObj.名称); // 输出 "张三"
        

使用 JSON.stringify() 将 JavaScript 对象转换为 JSON 字符串:

let obj = { 名称: "张三", 年龄: 25 };
let jsonStr = JSON.stringify(obj);
console.log(jsonStr); // 输出 '{"名称":"张三","年龄":25}'
        

Python

使用 json 模块将 JSON 字符串解析为 Python 对象:

import json
json_string = '{"名称":"张三","年龄":25}'
python_obj = json.loads(json_string)
print(python_obj["名称"])  # 输出 "张三"
        

使用 json.dumps() 将 Python 对象转换为 JSON 字符串:

import json
python_obj = {"名称":"张三","年龄":25}
json_str = json.dumps(python_obj)
print(json_str)  # 输出 '{"名称":"张三","年龄":25}'
        

JSON 与 XML 的比较

1. 语法

JSON 使用更简洁的语法,主要使用键值对和数组,而 XML 使用标签和属性,结构相对复杂。

JSON 对象表示:

{
    "书籍": {
        "标题": "JSON 指南",
        "作者": "作者姓名"
    }
}
        

对应的 XML 表示:

<书籍>
    <标题>JSON 指南</标题>
    <作者>作者姓名</作者>
</书籍>
        

2. 解析性能

一般来说,JSON 的解析速度更快,因为其结构简单,占用空间小,更易于程序解析。

JSON 验证

可以使用在线 JSON 验证工具(如 JSONLint)来检查 JSON 数据的有效性。这些工具会检查 JSON 的语法是否正确,是否符合 JSON 标准,帮助你快速发现并修正错误。

JSON 安全

由于 JSON 是一种数据交换格式,使用时需要注意防止 JSON 注入攻击。避免将用户输入直接作为 JSON 解析,确保输入的 JSON 数据来源可靠。