返回博客

JSON数据共享格式概述

JSON数据共享格式概述

JavaScript Object Notation (JSON,简称 JSON,发音非常像人名 ‘Jason’),是一种数据共享格式。顾名思义,JSON 源自 JavaScript,但它并不是唯一允许使用它的代码所有者。事实上,许多其他编程语言也可以使用它,包括 Ruby, PHP, Python,以及 Java.

当独立存在时,JSON 文件使用 .json 后缀,但作为一种易于在 Web 服务器和客户端(或浏览器)之间传输的格式,它也可以被定义为 .html 格式。在这种情况下,它既可以是一个赋值给变量的对象,也可以作为引号内的 JSON 字符串出现。

JSON 是 XML 的一个很好的替代方案,因为它更具可读性,且需要最少的格式化。本教程将向您介绍 可以存储在 JSON 文件中的数据,以及该格式的通用语法和结构。

结构 & 语法

JSON 对象是一种利用花括号表示键值对的数据格式。在处理 JSON 时,您最常看到它在 .json 文件中呈现,但在程序的上下文中,它也可能作为字符串或 JSON 对象存在。

以下是 JSON 对象的一个示例:

json object

虽然这是一个相当简短的示例,且 JSON 对象可以长得多,但它准确地展示了该格式通常是如何设置的:两端各有一个花括号(或大括号),中间填充着键值对。JSON 中的大部分数据都封装在 JSON 项中。

有一个冒号用于分隔键值对(“key” : “value”)。这些键值对中的每一个都通过逗号分隔,作为列表的不同成员。这导致 JSON 格式的中间部分呈现以下方式:“key” : “value”, “key” : “value”, “key” : “value”。在上述示例中,"name" : "Akshay" 例如是第一个键值对。

每个对象中的键必须是唯一的,可以呈现为任何有效的字符串,并用双引号括起来(“key”),并且总是位于冒号的左侧。虽然键字符串中允许有空格(例如在 “first name” 中),但从编程的角度来看,这在访问方面确实带来了更大的挑战。因此,通常采用的编程实践是用下划线代替键中的空格(“first_name”).

JSON 中的值位于冒号的右侧。在最基本的粒度上,这些值必须是以下 6 种特定数据类型之一:

  • 数字
  • 对象
  • 数组
  • 字符串
  • 真或假(布尔值)
  • Null

下一节将介绍 JSON 对象数组中更复杂的数据类型,传入 JSON 的每个值都将保留其语法。换句话说,字符串将继续出现在引号中,而数值则不会。

按照惯例,JSON 格式通常以多行格式列出。然而,它也可以被格式化为单行:

single line json

当遇到 JSON 字符串或在另一种文件类型中时,这种格式化类型更为常见。在处理庞大的数据集时,将冒号和键值对写在单独的行上可以使列表对人眼更具可读性,因为 JSON 缺乏空格的辅助分隔作用:

json object

虽然 JSON 对象类似于 JavaScript,但请务必记住它们是不同的格式。虽然 JavaScript 允许使用函数,但 JSON 不允许。JSON 如此有价值的原因在于它的跨语言兼容性,允许所有编程平台对其进行解析。

到目前为止,我们只看到了最简单形式的 JSON 格式,但当它包含嵌套对象和数组时,它可以呈层级化且更复杂地演变。在下一节中,我们将探讨更高级的 JSON。

利用复杂的 JSON 类型

除了嵌套数组外,JSON 还可以存储嵌套对象。这些对象 and 数组将作为键的值进行传输,并且它们将与键相关联以形成键值对。

  • 嵌套对象的形成

在以下 users.json 文件图像,四个用户中的每一个都传递了一个嵌套的 JSON 对象(“akshay”, “sam”, “Andrew”, “James”)。每个用户都拥有自己的嵌套键(“location”“username”):

nested

高亮显示的部分代表第一个嵌套对象的示例。在上面的示例中,使用花括号为四个用户中的每一个创建了一个嵌套的 JSON 对象,其中包含相应的用户名和位置详细信息。使用对象时,逗号用于根据特定的用户属性来区分项目。

  • 嵌套数组的形成

作为值传递的 Javascript 数组也可以用来在 JSON 格式中嵌套数据。这是通过在数组类型的末尾使用 [ ](方括号)来实现的,这些数组是包含独特数据类型的结构化列表:

array

在上述示例的高亮部分中,由于方括号的存在,Akshays’s 的 2 个社交媒体个人资料网站和 2 个网站链接均在嵌套信息数组中使用。通过在 JSON 中以这种方式进行嵌套,我们在处理分层和复杂的数据内容时可以获得更多的灵活性。

  • XML 对比

Extensible Markup Language (XML)提供了一种存储数据的方法,机器和人类都可以访问这些数据。与 JSON 一样,XML 可以被许多编程语言使用。与 JSON 不同,XML 包含明显更多的文本,因此组合起来更复杂、更耗时。虽然标准函数可以解析 JSON,但 XML 需要特定于 XML 的解析器。最重要的是,XML 无法使用数组。让我们对比一下格式化为 XML 与 JSON 的相同数据:

xml vs json

XML 需要明显更多的文本并占用更多空间。它还需要结束标签,而 JSON 要紧凑得多且排列简单。熟悉 HTML 的人可能会注意到 XML 在标签使用上的相似性。

在决定使用哪种格式之前,评估项目的范围 and 需求总是很有帮助。JSON 不那么冗长、更精简,并且可以快速用于 AJAX 应用程序和其他情况。项目类型将有助于阐明最适合使用的数据结构。

了解更多关于 JSON 的信息

JSON 是一种通用且自然的格式,可以在多种编程语言中实现。您可以在 “Introducing JSON”页面上找到支持的语言的完整列表。此外,解析和兼容性信息可以在 “iQuery library.”

最后,您很可能不会经常编写纯 JSON。相反,您会从数据源中提取它,或者将其他数据文件转换为 JSON。使用开源工具 Mr. Data Converter,您可以将电子表格程序中发现的 CSV 或制表符分隔的数据转换为 JSON。使用获得知识共享许可的 utilities-online.info 平台,您可以将 XML 转换为 JSON,反之亦然。使用自动化软件时,请仔细检查报告以消除任何冗余。

您还可以使用 JSONLint 来验证您的 JSON,并使用 JFiddle 在将其他类型转换为 JSON 格式时,在 Web 开发环境中对其进行评估。

结论

随着获得越来越多的 API 支持(包括 Twitter API),JSON 是一种轻量级的数据格式,它促进了编辑、存储和共享数据的简便性。由于您不会生成自己的 .json 文件,而是从其他渠道接收它们,因此考虑如何在程序中使用 JSON 比考虑其结构更为重要。

以下是来自我们博客的更多资源,将帮助您使用 JavaScript 进行编程:

祝您计算愉快!

author

Akshay Nagpal

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。