JSON端口操作实例
创始人
2024-03-07 22:57:51
0

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

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

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

一、“根元素名称”设置

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

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

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

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

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

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

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

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

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

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

三、设置Json字段类型

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

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

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

json:type=int
json:type=integer
json:type=boolean
json:type=bool
json:type=object
json:type=null

更多 EDI 信息,请参阅: EDI 是什么?

阅读原文

相关内容

热门资讯

原创 胶... 鲁网12月24日讯(记者 孙强)为了进一步预防校园欺凌事件的发生,加强青少年的法治意识和安全防范意识...
被日强征韩籍军人遗属起诉靖国神... 新华社首尔12月24日电(记者张粲 陆睿)据韩联社报道,二战时期被日军强制征兵的部分韩籍遇难者遗属2...
靖国神社被起诉 据参考消息援引韩联社12月23日报道,二战时期被日军强制征兵的韩籍遇难者遗属,23日针对日本靖国神社...
探寻杭州靠谱公司律师,程明律师 在商业活动与日常生活中,法律事务如影随形。无论是公司面临的商业纠纷,还是个人遭遇的合同问题,都需要专...
上海海关案件律师张严锋:走私“... 走私“热玛吉美容仪”的犯罪认定及处罚 2019年1月至9月间,被告单位A公司作为外贸经营单位为B...
腐蚀多名国家工作人员充当“保护... 拉拢、腐蚀多名国家工作人员充当“保护伞”,组织卖淫、非法采矿等违法犯罪活动……以陶某彬、胡某国为领导...