1.什么是JSON?
JSON是一种独立的数据格式,不受 JavaScript 语言的约束。同时,JSON以其简单的结构和Unicode字符集编码成为系统间交换数据的理想格式。它总是作为一个整体在应用程序之间进行交换。如果文档在文件系统中作为文件可用,那么人工处理 JSON 文档是最简单的。这里通常使用文件扩展名“*.JSON”。JSON 文档的内容在结构上基本上是面向对象的(请参阅基本结构)。
2. JSON 是如何工作的?
格式化 JSON 文档中的内容必须遵循严格的结构规范。原始规范由 Douglas Crockford 制定,并记录为JSON 定义。JSON 文档始终以“{”和“}”开头和结尾。内容必须位于花括号之间。大括号括起一个对象。在文档本身中,可以再次定义更多对象。数据字段以名称开头,后跟冒号后的值。然后该值可以再次成为对象。
存储在 JSON 中的变量可以是以下类型:
布尔值:真值可以是 true 或 false。使用的关键字不带引号(例如,“active”:true)。
数字:数字用数字 0-9 表示,可选择用点和符号表示。也可以使用指数(例如,“距离”:3.1e+12)。
字符串:字符串是放在引号之间的任何文本(例如,“city”:“Hamburg”)。
零:空变量由零赋值表示。不应将其与数字 0 或空字符串混淆。零表示“无”(例如,“链接”:零)。
格式化 JSON 文档中的内容必须遵循严格的结构规范。原始规范由 Douglas Crockford 制定,并记录为JSON 定义。JSON 文档始终以“{”和“}”开头和结尾。内容必须位于花括号之间。大括号括起一个对象。在文档本身中,可以再次定义更多对象。数据字段以名称开头,后跟冒号后的值。然后该值可以再次成为对象。
结构
{
“数据字段 1”:“值”
“数据对象。”
{
“字段 1”:123
“字段 2”:“文本”
“Field3Array”:[“Value1”,“Value2”,“Value3”,“Value4”]}
}
3 JSON有什么优点?
JSON 对用户来说学习起来很快,并且可以快速集成到现有系统中。 实现简单、训练周期短是JSON的主要优势。 此外,JSON 已经可以被许多常见的编程语言读取。 有一个所谓的解析器,它可以翻译 JSON 文件并使其可供应用程序使用。 所有这些都使 JSON 成为用户流行的数据格式。
4.JSON和Java有什么关系?
JSON 的定义源自 ECMA-262 标准的 JavaScript 语言定义的一个子集。然而,JSON 有此渊源,以及“Java Script Object Notation”这个名称并不意味着 JSON 仅限于在 JavaScript 中使用。JSON 是完全独立的,不与 JavaScript 语言绑定。JavaScript 中有许多用于处理 JSON 的内置函数,这使得在 JavaScript 中使用 JSON 变得特别容易。然而,在许多其他语言中,也可以使用相应的框架。当有疑问时,可以使用任何编程语言读取和处理 JSON 的简单文本格式。
5.有哪些应用领域和实际好处?
由于其简化的结构和在Unicode 字符集中的编码,JSON 是系统间交换数据的理想格式。而且无需考虑操作系统、计算机体系结构或编程语言。
数据以 JSON 格式存储,并通过任何通道(http、文件、TCP/IP、数据库等)作为数据包传输到目标系统。由于结构和集成的描述元素,目标系统再次评估数据非常简单。由于数据将作为封闭的数据包/文档进行交换,因此非常适合异步过程。JSON 最常用于 Web 环境,但在各种应用程序领域中的地位也越来越高。
6. JSON在业界是如何运作的?
JSON 格式在工业环境中变得越来越普遍。 一个重要因素是机器和现场级设备与基于网络的技术的集成越来越紧密。 由于具有REST 接口(什么是 REST?)的现场设备和软件系统以及通过 MQTT 集成传感器和设备,JSON 已经被广泛使用。 NoSQL 的当前使用以及机器学习和人工智能的增长趋势使得 JSON 作为一种简单但灵活的数据格式不可或缺。
7.设备和服务
通过 REST 接口提供信息的服务经常以 JSON 格式返回它们的数据。一个例子是天气服务 OpenWeatherMap。例如,此调用以 JSON 格式返回伦敦的当前天气:https ://openweathermap.org/
有关详细示例,请访问我们关于连接 OpenWeatherMap 的操作方法文章。
JSON 设备通常是通过 MQTT 发送数据的数据源,是物联网的一部分。
8. JSON 和 XML
XML(Ex tensible M arkup Language )是一种描述语言。数据的描述在本质上类似于 JSON。XML 中带有标签的描述导致更高的工作量。数据不仅可以用Tags来描述,还可以用Attributes (例如:TEXT)来描述。因此,当交换数据时,发送方和接收方必须具有关于约定结构的非常明确的信息。
相比之下,JSON 中的结构是灵活的,并且在任何情况下都可以被接收方完全理解,并且可以转换为对象,而无需任何事先的结构约定。
因此,XML 适用于明确定义的数据接口,而 JSON 适用于灵活的数据交换。
9. JSON 和 MQTT
MQTT 协议是一种用于数据交换的简单轻量级传输协议。它经常被必须处理有限带宽和计算能力的设备和服务使用。MQTT的数据格式没有规定。但是,数据负载经常被格式化为 JSON 文档,因为它非常适合此用例。由于这个原因,有许多 MQTT 连接伙伴以 JSON 的形式发布他们的数据。
10. JSON 和 NoSQL
使用 NoSQL 概念的基于文档的数据库是 JSON 的一个众所周知的用例。这些数据库接受 JSON 文档进行存储并返回它们以供查询。由于 JSON 的灵活结构,可以将任何 JSON 文档传递到面向文档的 NoSQL 数据库中。这些数据库中的查询可以访问文档中的所有字段和对象,而无需事先定义模式,因此返回符合查询条件的文档。不需要像传统 SQL 那样的模式定义。此类数据库的一个示例是MongoDB数据库。OPC Router具有一个插件,可将数据发送到MongoDB 数据库。
11.JSON示例
在具有多个组件的生产订单中解释了一个稍微复杂的示例。生产订单由一些基本字段和包含组件的数组描述。每个组件都被描述为一个单独的对象,具有自己的描述字段。
{
"Order number": 4711,
"Quantity": 15000.0,
"Item": "Product A",
"Planned date": "6/4/2020",
"Release": true,
"Components":[
{
"Name": "Component A",
"Material number": 292345,
"Quantity": 345,123,
"Storage areas": [ 3, 6, 23 ] }, {
"Name": "Component B",
"Material number": 908431,
"Quantity": 12034,123,
"Storage areas": [ 1, 2, 9 ] },
{
"Name": "Component C",
"Material number": 928398,
"Quantity": 2623.2,
"Storage locations": [ 10 ] },
] }
更多信息
了解JSON 插件如何从不同来源提取数据、转换数据并使其可用于您的系统。
了解发动机和园林工具制造商STIHL使用 inray 的 OPC Router如何提高整体自动化效率。ERP 系统 SAP 及其数据库以及装配线的 SQL 服务器的集成可实现高效的生产文档记录和可追溯性,以及自动过程控制。
了解更多关于工业 4.0的信息!通过数字化实现的第四次工业革命:人、机器和产品直接相互联网。在我们的文章中阅读更多内容!
您可以在我们的知识库中找到更多关于工业 4.0、云、技术、警报和实际应用示例以及案例研究等主题的有趣文章。