JSON 端口可直接实现在 JSON 和 XML 之间进行转换。端口会自动检测输入文件是 JSON 还是 XML,然后将文件在两种格式间相互转换。

该端口较多的是运用在API接口调用集成方案的项目当中,我们以百思买项目为例,知行之桥将接收到的百思买的EDI报文首先映射为XML格式文件,最后再通过JSON端口转换为Json;用户给百思买发送数据时,也会将JSON格式数据推送至固定目录下,知行之桥经过一系列的转换,生成EDI报文之后发送给百思买。

数组转Json字符串_json转数组_数组转JSON

通常情况下,Json端口可以直接使用,无需其他配置即可满足用户基本要求。但也会有一些需要特殊设置的场景,这里举几个例子以及在知行之桥中的操作示例,我们一起来看看吧。

一、“根元素名称”设置

json转数组_数组转JSON_数组转Json字符串

在Json端口的设置页面,“根元素名称”栏目可设置指定的根元素,默认设置为Items。

(1)当XML转Json时,该设置判断是否保留根元素,可进行两种配置:

一种是使用默认设置Items,Json端口会将输入XML中的根元素保留下来,并且将其作为转出Json的根节点,此时,左图的输入XML会转为右图的输出Json:

json转数组_数组转Json字符串_数组转JSON

另一种是配置“根元素名称”为输入XML的根元素,输出的Json将不会保留原始根元素。比如,若设置“根元素名称”为(输入XML的根元素),此时转出的Json如右图:

json转数组_数组转JSON_数组转Json字符串

(2)当Json转XML时,转出的XML会以设置的“根元素名称”作为根节点。使用默认设置Items时,左图的输入Json转出的XML如右图所示,输出XML的根元素为Items:

json转数组_数组转JSON_数组转Json字符串

除了默认设置Items,也可自定义根元素,输出的XML会以此定义作为根元素。比如,当自定义设置为PO时,如下图所示,输出XML的根元素为PO:

json转数组_数组转JSON_数组转Json字符串

二、设置单个数组节点也带有数组符号

XML转JSON时,若只有一行明细,此时JSON端口转出的Json文件中,单行明细以JSON对象输出,但是很多时候用户需求是只要是明细行,无论是单行明细还是多行明细,都应该以JSON数组格式输出。这就需要在JSON端口输入的XML文件中,在明细行处标明属性json:array,以及其值为true。具体的设置是这样的,以此工作流为例,在JSON端口前一般都连有XML MAP端口,该端口进行的操作是将指定格式的XML文件,映射为符合用户具体需求的XML文件。我们需要在XML MAP端口中的目标XML中,找到明细元素,添加属性@json:array=true。

数组转JSON_数组转Json字符串_json转数组

这样转出的XML文件的明细元素就是包含属性json:array=true,再经过JSON端口转换出的JSON文件中也带有[]了。

数组转Json字符串_数组转JSON_json转数组

此示例中为明细元素以及其中嵌套的数组都加上了[]。

三、设置Json字段类型

XML转JSON时,默认情况下,转换得到的JSON中,所有的数据类型都是字符串类型。但有些项目中,需要设置具体字段为用户指定的数据类型,具体操作与刚刚演示的操作类似。可以在JSON端口前连接的XML MAP端口的目标XML中,找到具体字段,右键选择为其添加属性,属性为json:type,值为想要的数据类型,这里我们示例类型。

json转数组_数组转Json字符串_数组转JSON

这一步转出的XML经过JSON端口转换得到的Json文件中,对应字段就会变为指定的类型了。

数组转Json字符串_json转数组_数组转JSON

除了类型,还有以下多种类型可以转换:

json:type=int

json:type=

json:type=

json:type=bool

json:type=

json:type=null

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!