Altova XMLSpy 2024 Professional Edition

如果活动文档为XML文档,则此命令将从中生成JSON文档。如果活动文档为JSON文档,则此命令将从中生成XML文档。生成的文档将在新窗口中打开,并可以保存到任何位置。下方将介绍可用的转换选项。有关XMLSpy中的JSON和JSON编辑支持的更多信息,请参见JSON和JSON Schema部分。

 

示例转换

下方给出了一个源XML文档的示例,在它下面则是使用XML实例与JSON相互转换命令生成的JSON文档。

 

XML文档

 

<?xml version="1.0" encoding="UTF-8"?>

<Person first="Jim" last="James">

 <Address>

   <street>4 New Street</street>

   <city>New York</city>

   <state>NY</state>

   <code>10123</code>

 </Address>

 <Tel type="home">

     123 123-1234

 </Tel>

 <Tel type="office">

     123 987-9876

 </Tel>

</Person>

 

JSON文档

 

{

 "XML": {

         "version": 1.0,

         "encoding": "UTF-8"

 },

 "Person": {

         "first": "Jim",

         "last": "James",

         "Address": {

                 "street": "4 New Street",

                 "city": "New York",

                 "state": "NY",

                 "code": 10123

         },

         "Tel": [ { "type": "home",

                 "Text": "\      123 123-1234\  "}, { "type": "office",

                 "Text": "\      123 987-9876\  "} ]

 }

}

 

 

要将JSON文档转换为XML,请将JSON文档设为活动文档并单击XML实例与JSON相互转换命令。

 

从XML到JSON的转换选项

当您单击XML实例与JSON相互转换命令将XML实例文档转换为JSON实例文档时,将出现一个“将XML转换为JSON”对话框(参见下方截图)。您可以选择是否要转换为JSON、JSON5或JSON Comments。然后设置所需的转换选项,并单击确定。这时将从XML实例生成JSON实例文档,生成的JSON文档将在新窗口中打开。

JSONConvertXMLInstance2JSON

前两个选项指定是否应将前缀添加到JSON属性名称中,从而避免与同一级别的元素发生冲突。以下两个代码片段解释了这一点。XML特性somenode已被转换为JSON属性@somenode。这样可以避免与JSON属性somenode(从XML元素somenode创建)的冲突。

 

XBRL实例

 

<root somenode="value">

   <somenode>content</somenode>

</root>

 

 

JSON实例

 

{

   "root": {

       "@somenode": "value",

       "somenode": "content"

   }

}

 

 

下面的选项允许您指定是否要转换特定类型的XML节点。如果包括了XML注释,它们将被命名为"#”。文本节点(通常出现在具有混合内容的元素)将被命名为"\$”。如果XML节点具有命名空间前缀,则将使用此命名空间前缀创建相应的JSON名称。如果具有同名的元素存在于同一级别,它们将被视为相等组件。同理,像同一级别上的注释、处理指令和text()这样的节点也是相等组件。如果相等组件存在于同一级别,您可以选择是否创建数组。您可以选择从所有这些相等组件中创建数组,或仅使用相邻的相等组件创建数组,或根本不创建数组。

 

使用XML Schema类型信息选项允许您根据源节点在XML Schema中的类型设置转换。例如,如果节点在Schema中被定义为xs:string类型,则目标JSON对象的属性将是JSON类型string并用引号括起来。例如,如果一个数字在源XML节点中被存储为字符串,并且在转换为JSON时也必须忠实于类型,则这一功能就很有用。

 

从JSON到XML的转换选项

当您单击XML实例与JSON相互转换命令将JSON实例文档转换为XML实例文档时,将出现一个“将JSON转换为XML”对话框(参见下方截图)。您可以在其中设置所需的转换选项,然后单击确定。这时将从JSON实例生成一个XML实例文档,生成的XML文档将在新窗口中打开。

JSONConvertJSONInstance2XML

请注意以下几点:

 

JSON对象属性被转换为XML元素。对话框中的前几个选项允许您选择是否创建某些类型的属性。

对属性名称中的冒号进行编码:如果选中,JSON名称中的冒号将被编码,而不是创建为冒号。如果未选中,冒号将保持不变。

保留JSON值类型信息:如果选中,属性的JSON类型信息将被创建为相应元素的特性-值对。

为每个JSON数组创建容器元素:XML文档中的容器元素将被赋予JSON数组对象的名称。JSON数组中的项将在此容器中被创建为XML元素。每个都将被赋予您在数组项的元素名称文本框中指定的名称。

 

© 2017-2023 Altova GmbH