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

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

相关文章:

  • h5微信网站建设互动营销的概念
  • 苹果网站上物体阴影怎么做的北京公司排名seo
  • 东莞哪些网络公司做网站比较好店铺推广方案怎么写
  • 国家开放大学网站界面设计公司推广渠道
  • 网站业务原创文章代写
  • 大型企业门户网站能力建设探索与实践深圳seo外包公司
  • 图形学曲线c++简单实现
  • Vllm进行Qwen2-vl部署(包含单卡多卡部署及爬虫请求)
  • mysqldump 参数详解
  • Linux | 程序 / 进程调用库依赖关系查看
  • 上位机知识篇---HTTPHTTPS等各种通信协议
  • 网络空间安全(4)web应用程序安全要点
  • STL 算法库中的 min_element 和 max_element
  • 什么是HTTP协议
  • multer 依赖详解
  • USBCANFD接口卡介绍
  • MATLAB应用介绍
  • 前后端分离项目部署到云服务器、宝塔(前端vue、后端springboot)详细教程
  • 深入理解分布式系统中的关键概念:三阶段提交、补偿事务、消息队列与Saga事务模型及分布式ID生成方案
  • C#通过接口 继承接口的类 实现约束 对List内数据类型的值进行排序,可直接复制使用
  • 我通过AI编程完成了第一个实用程序
  • 如何选择消息队列
  • 【开源-线程池(Thread Pool)项目对比】
  • vue cli 与 vite的区别
  • 《当齐天大圣踏入3A游戏世界:黑神话·悟空的破壁传奇》:此文为AI自动生成
  • 【UCB CS 61B SP24】Lecture 16 - Data Structures 2: ADTs, BSTs学习笔记