当前位置: 首页 > article >正文

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 应用程序和处理数据交换非常重要。


http://www.kler.cn/a/568159.html

相关文章:

  • 【Java 基础(人话版)】Java SE vs Java EE
  • 第十五站:循环神经网络(RNN)与长短期记忆网络(LSTM)
  • redis的启动方式
  • Linux——计算机网络
  • 【SDR课堂第12讲】AD9361毛刺问题总结
  • 手写RPC框架-V1版本
  • 一周学会Flask3 Python Web开发-Jinja2模版中加载静态文件
  • 2.9作业
  • 大模型最新面试题系列:训练篇之数据处理与增强
  • Python可视化大框架的研究与应用
  • 聊聊大数据测试开展方向有哪些?
  • Protobuf原理与序列化
  • Android中的四大组件及其生命周期
  • 学习笔记-单片机蓝桥杯大模板更新-米醋
  • uniapp h5页面获取跳转传参的简单方法
  • 设置电脑一接通电源就主动开机
  • OpenEuler学习笔记(三十五):搭建代码托管服务器
  • IP-----动态路由OSPF(2)
  • Docker数据卷容器实战
  • CSS 中最常用的三种选择器的详细讲解(配合实例)