Altova XMLSpy 2023 Professional Edition

本部分大致介绍了JSON数据的结构。通常,json数据存储在json(实例)文档中,但它也可以作为json数据片段存储在另一种类型的文档中。JSON数据片段或文档是一种JSON数据结构,其广义定义如下所述。

 

XMLSpy还支持JSON5,它是JSON的扩展,添加了一些最小的ECMScript 5扩展。有关更多信息,请参见json5.org

 

JSON对象和数组

JSON文档(通常带文件扩展名.json进行保存)是基于以下核心数据结构构建的:

 

 

对象

object由大括号分隔,它是一个由零对或多对key:value组成的无序集合。这些key:value对是properties of the object.。键必须始终是一个字符串,因此必须总是用引号括起来。键(也称为属性的名称)与其值用冒号分隔。属性值可以是任何JSON数据类型(参见下方列表)。属性之间用逗号分隔。下方列表是一个带有三个属性的对象示例(所有属性都具有原子型的值):

 

    {

      "emailtype": "home",

      "emailaddress": "contact01.home@altova.com",

      "citycode": 22

    }

 

 

 

数组

array由方括号分隔,它是一个包含零个或多个items,以逗号分隔的有序列表。这些数据项可以是任何JSON数据类型(参见下方列表)。

 

 

JSON数据类型

对象属性值和数组项可以是以下类型:

 

string(必须用引号括起来):一个字符串还可以被指定为具有某种格式,例如date-timeemail格式。

number:带有小数部分的数字,包括整数。

integer:不带小数部分的数字;它是number类型的子集

booleantrue/false,无需括在引号中)

object:当在另一个对象中使用时,允许嵌套数据。

array:与对象相比,它允许您构建更复杂的结构。

nullnull,无需括在引号中)

 

JSON数据示例

下方是一个JSON数据片段示例。您可以从中看到该文档是如何以对象和数组构建的。还请注意键值的数据类型;字符串的值被括在引号中,其他类型用绿色标记。

 

{

  "first": "Jason",

  "last": "Jones"

  "isManager": true,

  "age": 35,

  "address": {

    "street": "Jason Avenue",

    "city": "Jasonville",

    "state": "JS",

    "postcode": "JS12 ON34"

  },

  "phone": [

    {

      "type": "home",

      "number": "12 3456-7890"

    },

    {

      "type": "office",

      "number": "789 012-34567"

    }

  ],

  "children": [],

  "partner": null

}

 

JSON5和JSON之间的一些区别

JSON5是JavaScript的一个严格的子集,不添加任何新的数据类型,并且可以处理所有现有的JSON内容。下方列出了一些值得注意的区别:

 

JSON5支持注释功能。注释的分隔符如下// comment ///* comment */

在JSON5中,key:value对的键部分不需要括在引号中。

在JSON5中,可以跨多行编写字符串。

JSON5文档可以根据JSON Schema进行验证。

 

© 2017-2023 Altova GmbH