JSON教程:通过简单示例学习

⚡ 智能摘要

JSON,是 JSON 的缩写 Java脚本对象表示法 (Script Object Notation,SON) 是一种轻量级、易于阅读的格式,用于在服务器和应用程序之间存储和交换结构化数据。本文将解释其语法、数据类型、实际应用以及与 XML 的区别。

  • ???? 核心定义: JSON 将信息存储为名称/值对和有序数组,使用花括号表示对象,使用方括号表示数组。
  • 🧩 支持的数据类型: 掌握六种 JSON 数据类型——字符串、数字、布尔值、null、对象和数组——即可对几乎任何结构进行建模。
  • 团队采用它的原因: JSON 可以原生解析 Java该脚本可在所有浏览器上运行,并与大多数后端技术和 REST API 集成。
  • 🔄 JSON 与 XML: 与 XML 相比,JSON 是类型化的,更易于人类阅读,序列化速度也更快,尽管它缺乏标记显示功能。
  • 🛠️ 实用工具: 部署前,使用 JSONLint、JSON Editor Online 和 JSON Formatter 等工具验证、格式化和压缩代码。

JSON 教程

什么是 JSON?

JSON 是一种用于以有组织且易于访问的方式存储信息的文件格式。其完整形式为 Java脚本对象表示法。它提供了一组可逻辑访问的人类可读数据。其编写的编程代码的文件扩展名为 .json。JSON 的互联网媒体类型为 application/json,其统一类型标识符为 public.json。

既然定义已经明确,下一节将解释为什么开发人员选择 JSON 而不是其他数据格式。

为什么使用 JSON?

以下是使用 JSON 的重要好处/优点:

  • 提供对所有浏览器的支持
  • 易于阅读和书写
  • 语法简单
  • 您可以本地解析 Java使用 eval() 函数的脚本
  • 易于创建和操作
  • 得到所有主要 Java脚本框架
  • 大多数后端技术均支持
  • JSON 可以被原生识别 Java脚本
  • 它允许你 transmit 并使用网络连接对结构化数据进行序列化。
  • 您可以将它与现代编程语言一起使用。
  • JSON 是可以转换为任何对象的文本 Java将脚本转换为 JSON 并将该 JSON 发送到服务器。

JSON 的历史

JSON 的历史
JSON 教程

以下是构成 JSON 历史的重要里程碑:

  • Douglas Crockford 在 2000 世纪初指定了 JSON 格式。
  • 官方网站于2002年上线。
  • 2005 年 XNUMX 月,雅虎开始以 JSON 格式提供部分网络服务。
  • JSON 于 2013 年成为 ECMA 国际标准。
  • 最新的 JSON 格式标准于 2017 年发布。

除了上述时间线之外,JSON 还提供了一系列实用功能,这解释了它经久不衰的流行度。

JSON 的特点

操作简单 – JSON API 提供高级外观,帮助您简化常用的用例。

性能 – JSON 速度非常快,因为它占用的内存空间很少,特别适合大型对象图或系统。

免费工具 – JSON 库是开源的,可以免费使用。

无需创建地图ping Jackson API 提供默认映射ping 需要序列化多个对象。

清理 JSON – 创建干净、兼容且易于阅读的 JSON 结果。

依赖 – JSON 库不需要任何其他库进行处理。

JSON 语法规则

JSON 语法规则如下:

  • 数据应以名称/值对的形式
  • 数据应以逗号分隔
  • 花括号应该包含对象
  • 方括号包含数组

JSON 中的数据类型

语法规则确定后,下表列出了 JSON 中使用的重要数据类型:

数据类型 描述
联系电话 包括实数、整数或浮点数
它由任何文本或 Unicode 双引号组成,带有反斜杠转义
布尔 布尔数据类型表示 True 或 False 值
Null 值表示关联变量没有任何值
摆件 它是键值对的集合,始终用逗号分隔并用花括号括起来。
排列 它是一个有序的、分离的值序列。

联系电话

  • 该数字是双精度浮点格式,取决于其实现方法。
  • 在 JSON 中不能使用十六进制和八进制格式。

下表显示数字类型:

类型 描述
整数 数字 1-9 和 0。正数和负数。
分数 像 3 这样的分数
指数 指数如 e、e+

语法:

var json-object-name = { string : number_value,......}

计费示例:

var obj = {salary: 2600}

它是一系列用双引号括起来的Unicode字符,并且带有反斜杠。ping.

下表显示了各种字符串类型:

类型 描述
* 用于双引号ping
/ 用于固相线
\ 用于反固相线
B 使用添加退格键
F 来自饲料
N 创建新行
R 用于回车
T 显示水平制表符
U 十六进制数字

语法:

var json-object-name = { string : "string value",…..}

计费示例:

var obj = {name: 'Andy'}

布尔

它仅存储真值或假值。

语法:

var json-object-name = {string : true/false, …..}

计费示例:

var obj = {active: 'true'}

排列

  • 它是一个有序的值的集合。
  • 当键名是连续的整数时,您应该使用数组。
  • 它应该放在方括号内,并以“,” (逗号) 分隔

语法:

[value, .......]

计费示例:

显示存储多个对象的数组:

{
   "eBooks":[
      {
         "language":"Pascal",
         "edition":"third"
      },
      {
         "language":"Python",
         "edition":"four"
      },
      {
         "language":"SQL",
         "edition":"second"
      }
   ]
}

JSON 对象

A JSON 对象 是 JSON 中用大括号括起来的实体,以无序的名称和值对集合的形式书写,名称后面必须跟“:”(冒号),名称/值对之间必须用“,”(逗号)分隔,可用于键名为任意字符串的情况。

语法:

{ string :  value, ….. }

计费示例:

{
"id": 110,
"language": "Python",
"price": 1900,
}

空格

您可以在一对标记之间插入空格。

计费示例:

语法:

{string:"    ",….}

计费示例:

var a = " Alex"; var b = "Steve";

JSON 示例

给定的代码示例定义了如何使用 JSON 存储与 编程书籍 以及版本和作者姓名。

{
   "book":[
      {
         "id":"444",
         "language":"C",
         "edition":"First",
         "author":"Dennis Ritchie "
      },
      {
         "id":"555",
         "language":"C++",
         "edition":"second",
         "author":" Bjarne Stroustrup "
      }
   ]
}

让我们通过另一个 JSON 文件示例来了解 JSON 格式。这里,JSON 定义了学生的名字、姓氏和 ID。

{
  "student": [

     {
        "id":"01",
        "name": "Tom",
        "lastname": "Price"
     },

     {
        "id":"02",
        "name": "Nick",
        "lastname": "Thameson"
     }
  ]
}

JSON 的应用

以下是 JSON 的一些常见应用:

  • 帮助您从服务器传输数据
  • 示例 JSON 文件格式有助于 transmit 并序列化所有类型的结构化数据。
  • 允许您执行异步数据调用,而无需刷新页面
  • 帮助您 transmit 服务器与Web应用程序之间的数据传输。
  • 它广泛用于 Java基于脚本的应用程序,包括浏览器扩展和网站。
  • 您还可以 transmit 服务器和Web应用程序之间使用JSON进行数据传输。
  • 我们可以将 JSON 与现代编程语言结合使用。
  • 它用于书写 Java包含浏览器插件的基于脚本的应用程序。
  • Web服务和Restful API使用JSON格式来获取公共数据。

由于 JSON 应用非常广泛,因此它经常被拿来与 XML 进行比较,而 XML 正是它经常取代的格式。

JSON 与 XML

这是 JSON 与 XML 之间的主要区别

JSON XML
JSON 对象具有类型 XML 数据是无类型的
JSON 类型:字符串、数字、数组、布尔值 所有 XML 数据都应为字符串
数据可以作为 JSON 对象轻松访问 XML数据需要被解析。
JSON 文件更易于人类阅读。 XML 文件的可读性较差。
大多数浏览器都支持 JSON。 跨浏览器 XML 解析可能比较棘手
JSON 没有显示功能。 XML 提供了显示数据的能力,因为它是一种标记语言。
获取价值很容易 检索价值很困难
受许多 Ajax 工具包支持 未被 Ajax 工具包完全支持
一种全自动反序列化/序列化的方法 Java脚本。 开发人员必须编写 Java从 XML 序列化/反序列化的脚本代码
对对象的本机支持。 对象必须通过约定来表达——大多忽略了属性和元素的使用。

JSON 示例

以下是一个简单的 JSON 示例:

{
  "student": [

     {
        "id":"01",
        "name": "Tom",
        "lastname": "Price"
     },

     {
        "id":"02",
        "name": "Nick",
        "lastname": "Thameson"
     }
  ]
}

XML 示例

<?xml version="1.0" encoding="UTF-8" ?>
<root>
	<student>
		<id>01</id>
		<name>Tom</name>
		<lastname>Price</lastname>
	</student>
	<student>
		<id>02</id>
		<name>Nick</name>
		<lastname>Thameson</lastname>
	</student>
</root>

JSON 不是什么?

  • 示例 JSON 数据文件不是文档格式。
  • 它不是一种标记语言。
  • JSON没有提供通用的序列化格式。
  • 它不是重复或循环的结构。
  • 它也不是一个隐形的结构。

JSON 的缺点

JSON 的优点如下:

  • 不支持命名空间,因此可扩展性差
  • 有限 开发工具 支持
  • 不支持正式的语法定义

热门 JSON 工具(插件)

以下是重要的 JSON 工具:

JSONLint:

JSONLint 是一个开源项目,用作 JSON 的验证器和格式化工具。JSON 是一种轻量级的数据交换格式。支持复制粘贴、直接输入或以其他方式输入。 URL 使用 JSON 验证工具验证您的 JSON 代码。

链接: https://jsonlint.com

JSON 编辑器在线:

JSON Editor Online 是一款实用的基于 Web 的工具。它允许您编辑、查看和格式化 JSON。它以清晰、可编辑的方式并排显示您的数据 代码编辑器软件.

链接: https://jsoneditoronline.org/

JSON 压缩工具:

它是一个帮助您删除空格并提供占用最少空间的 JSON 代码的工具。

链接: https://www.browserling.com/tools/json-minify

JSON 到 XML 转换器:

JSON 到 XML 转换器是一个简单有效的工具,可以帮助您转换 JSON 代码。

链接: https://codebeautify.org/jsontoxml

JSON 格式化程序:

JSON 格式化程序通过格式化 JSON 数据来帮助您解决问题,以便人们轻松读取和调试。

链接: https://jsonformatter.curiousconcept.com/

常见问题

不,JSON 是一种数据交换格式,而不是编程语言。它仅使用基于文本的语法来存储和传输结构化数据。像……这样的编程语言…… Java脚本, Python和 Java 读取和写入JSON。

JSON 本身是纯文本格式,是安全的。风险出现在解析不受信任的输入时,尤其是在使用旧的 `eval()` 方法时。请使用标准的 JSON 解析器,例如 `JSON.parse()`,并验证数据以避免注入问题。

JSON 是一种用于存储和显示数据的文本格式。 transmit 数据。JSON 对象是该格式中的一种结构,以名称/值对的形式用花括号括起来。一个完整的 JSON 文件可以包含多个对象和数组。

人工智能系统使用 JSON 来发送提示、接收响应和交换模型参数。大多数大型语言模型 API 都接受并返回 JSON 格式的数据,使其成为请求、结构化输出和训练数据配置的标准格式。

是的。AI 助手可以根据纯文本描述生成 JSON 数据,并检查语法错误。许多工具还会强制执行某种模式,以确保输出有效并符合应用程序期望的结构。

总结一下这篇文章: