JSON基础知识

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。JSON 常用于客户端和服务器之间的数据传输。以下是 JSON 的基础知识:

JSON 的结构

JSON 的数据结构主要包括两种类型:

  1. 对象(Object):

    • 由键值对组成,键(key)是字符串,值(value)可以是任何 JSON 数据类型。
    • 对象用花括号 {} 包裹。
    • 键值对之间用逗号分隔,键和值用冒号 : 分隔。

    示例:

    javascript 复制代码
    {
      "name": "Alice",
      "age": 25,
      "isStudent": true,
      "courses": ["Math", "Science"],
      "address": {
        "street": "123 Main St",
        "city": "Wonderland"
      }
    }
  2. 数组(Array):

    • 由多个值组成,值可以是任何 JSON 数据类型。
    • 数组用方括号 [] 包裹,值之间用逗号分隔。

    示例:

    javascript 复制代码
    [
      "Apple",
      "Banana",
      "Cherry"
    ]

JSON 数据类型

JSON 支持以下数据类型:

  • 字符串(String) :用双引号 " 包裹,可以包含 Unicode 字符和转义字符。

    "Hello, World!"

  • 数字(Number):可以是整数或浮点数,不支持前导零。

    42 3.14

  • 布尔值(Boolean) :true 或 false。

    true false

  • 对象(Object):如上所述。

    { "key": "value" }

  • 数组(Array):如上所述。

    [1, 2, 3]

  • 空值(null):表示空值。

    null

JSON 的使用

  • 解析 JSON:将 JSON 字符串转换为 JavaScript 对象。

    javascript 复制代码
    var jsonString = '{"name": "Alice", "age": 25}';
    var obj = JSON.parse(jsonString);
    console.log(obj.name); // 输出 "Alice"
  • 生成 JSON:将 JavaScript 对象转换为 JSON 字符串。

    javascript 复制代码
    var obj = { name: "Alice", age: 25 };
    var jsonString = JSON.stringify(obj);
    console.log(jsonString); // 输出 '{"name":"Alice","age":25}'

JSON 的特点

  • 简洁:JSON 结构简单,易于理解和编写。
  • 跨语言:JSON 格式在不同编程语言之间广泛支持。
  • 可读性:JSON 语法类似于 JavaScript 对象字面量,易于人类阅读。

JSON 是现代 Web 开发中数据交换的标准格式,广泛用于 API 通信、配置文件、数据存储等场景。

相关推荐
程序员大阳37 分钟前
副队长JavaScript教程(49)-主动抛出异常与错误类型
javascript·异常处理·error·throw·错误类型
hhhjhl1 小时前
Protobuf.js 跨端三方库仓颉适配全流程
javascript·网络·udp
康小汪1 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
智能运维指南2 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
白山编程大哥3 小时前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
Flynt4 小时前
我把热榜那篇"禁用 axios"逐条实测了一遍:结论大体对,坑在它没讲的地方
前端·javascript·axios
Csvn5 小时前
bundle优化
前端
slongzhang_5 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
北冥有鱼5 小时前
发版后动态路由点击报 `Failed to fetch dynamically imported module`」问题上的完整排查与修复过程
前端·vue.js
静默回滚5 小时前
视频压到 25 MB 以内,码率要算、音轨要扣、余量要留
前端