JSON(JavaScript Object Notation)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于文本,独立于语言,但使用起来非常自然,尤其是对于像JavaScript、Python等语言。

JSON 的基本结构

JSON 数据由键值对组成,通常包含以下几种数据类型:

  • 对象(Object)由键值对组成,用大括号 {} 包裹。键(Key)必须是字符串类型,值(Value)可以是任何类型(字符串、数字、数组、布尔值、对象等)。

  • 数组(Array):由一系列值组成,用方括号 [] 包裹。

  • 字符串(String):用双引号 " 包裹的文本。

  • 数字(Number):整数或浮点数。

  • 布尔值(Boolean)truefalse

  • 空值(Null)null

示例

以下是一个 JSON 示例,展示了一个包含多种数据类型的对象:

JSON复制

{
  "name": "Alice",
  "age": 25,
  "is_student": false,
  "courses": ["Math", "Science", "History"],
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "zip": "12345"
  },
  "phone": null
}

JSON 的用途

  1. 数据交换:JSON 是一种广泛使用的数据交换格式,特别适合在 Web 应用程序中传输数据。

  2. 配置文件:JSON 文件常用于存储配置信息,因为它易于阅读和编写。

  3. API 响应:许多 Web API 使用 JSON 格式返回数据,便于客户端解析和使用。

Python 中的 JSON 操作

Python 提供了 json 模块,用于处理 JSON 数据。以下是常见的操作:

1. 将 Python 对象转换为 JSON 字符串

Python复制

import json

data = {
    "name": "Alice",
    "age": 25,
    "is_student": False,
    "courses": ["Math", "Science", "History"],
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "zip": "12345"
    },
    "phone": None
}

json_string = json.dumps(data, indent=4)
print(json_string)

输出:

JSON复制

{
    "name": "Alice",
    "age": 25,
    "is_student": false,
    "courses": [
        "Math",
        "Science",
        "History"
    ],
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "zip": "12345"
    },
    "phone": null
}
2. 将 JSON 字符串解析为 Python 对象

Python复制

import json

json_string = '''
{
    "name": "Alice",
    "age": 25,
    "is_student": false,
    "courses": ["Math", "Science", "History"],
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "zip": "12345"
    },
    "phone": null
}
'''

data = json.loads(json_string)
print(data)

输出:

Python复制

{
    'name': 'Alice',
    'age': 25,
    'is_student': False,
    'courses': ['Math', 'Science', 'History'],
    'address': {
        'street': '123 Main St',
        'city': 'Anytown',
        'zip': '12345'
    },
    'phone': None
}
3. 读写 JSON 文件
  • 写入 JSON 文件

Python复制

import json

data = {
    "name": "Alice",
    "age": 25,
    "is_student": False,
    "courses": ["Math", "Science", "History"],
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "zip": "12345"
    },
    "phone": None
}

with open("data.json", "w") as file:
    json.dump(data, file, indent=4)
  • 读取 JSON 文件

Python复制

import json

with open("data.json", "r") as file:
    data = json.load(file)
    print(data)

注意事项

  1. JSON 和 Python 的类型对应关系

    • JSON 的 null 对应 Python 的 None

    • JSON 的 truefalse 对应 Python 的 TrueFalse

    • JSON 的数组对应 Python 的列表。

    • JSON 的对象对应 Python 的字典。

  2. JSON 编码和解码

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

    • 使用 json.loads() 将 JSON 字符串解析为 Python 对象。

    • 使用 json.dump()json.load() 读写 JSON 文件。

  3. 格式化 JSON 输出

    • 使用 indent 参数格式化 JSON 输出,使内容更易于阅读。

JSON 是一种非常灵活和广泛使用的数据格式,掌握 JSON 的基本操作对于开发 Web 应用程序和处理数据交换非常重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值