[Share] EDI & JSON解决方案之接收JSON

Hello,大家好,这里是小知课堂,之前的课程中我们已经了解了如何将一个EDI报文解析为Json格式的文件,今天我们来看看如何处理接收到的JSON文件。根据接收JSON文件方式的不同,处理JSON文件的方式也有差异。通常情况下,我们会利用知行EDI系统自带的API端口将收到的JSON文件写入数据库中,然后处理收到的这些数据,这种方式需要主动将JSON文件POST到我们的API服务器上,由API端口写入数据库中,接下来则按照数据库方案生成EDI报文即可。同时我们要为获取到的JSON文件返回的Response JSON文件,或者从API服务器上直接GET到JSON文件,这时通过Http请求的方式获取到的JSON文件就无法直接写入数据库,那这些情况下如何处理JSON文件呢?小知给你答案~

1. 获取JSON文件

要处理获取到的JSON文件,首先需要知道我们是如何使用Http 请求获取JSON文件,下面小知就来说明如何使用Http请求来获取JSON文件。

1.1 获取POST请求的Response JSON文件

在《EDI与JSON解决方案——EDI报文JSON格式的解析和传输》中,我们讲解了如何使用POST方法将JSON文件发送的API服务器中。发送成功后API服务器可能会回复一个Rsesponse JSON文件,知行EDI系统提供的httpPost方法可以将该文件保存的http:content参数中,如下所示:

我们将获取到的JSON数据放到output.data中,之后将以文件的形式push出去,就可以获取到对应的JSON文件。

1.2 GET请求获取JSON文件

除了获取到返回的Response JSON文件外,有时我们需要使用GET请求直接从API服务器上获取JSON文件,使用GET方法获取JSON文件的方法和使用POST方法获取JSON文件的方法类似,需要使用知行EDI系统提供的httpGet方法获取JSON文件,使用该方法获取JSON文件的示例如下所示:

和httpPost方法类似,都需要先将要求的值放到其对应的参数中,其中url参数为必须的,其余的均为可选参数。这里只列举了几个参数,httpGet方法支持的参数可以参考知行EDI系统的Help界面,如下图所示,这里我们可以详细了解到httpGet方法支持的参数。

edi

配置了这些参数后,调用httpGet方法,将获取到的JSON文件保存到其content参数中,最后再push出去就可以得到我们需要的JSON文件了。

2. 处理JSON文件

在获取了对应的JSON文件后,我们需要根据需要获取JSON文件中有用的信息,一般情况下我们会利用JSON端口将获取到的JSON文件转换为XML文件后,在XML Map端口与其他结构的XML文件进行映射,映射完成后,就可以将该JSON文件的有效信息提取出来了。但是在此小知要介绍一种不利用JSON端口,直接获取JSON文件中有效信息的方法,在此,我们就需要借助知行EDI系统为我们提供的rsb代码了。这里我们使用的是jsonDOMSearch方法:

和其他的方法类似,在使用该方法时需要先设置此方法的必要参数,uri和jsonPath,uri指代需要读取的JSON文件的路径,写为[FilePath]表示在当前端口的send路径下获取当前的文件,jsonPath则是需要获取的JSON文件内部的取值路径,例如需要处理的JSON文件如下所示:

此时我们设置的jsonPath为/json/order_header,则需要取order_header下order_number属性的值时,我们只需要写为:,而需要获取order_item中buyer_item_number属性的值时,就需要写为:。这样一来,我们就可以按照此方法将JSON文件中需要处理的属性的值一一获取到,并将其放入到需要转换的XML文件中了。

3. 总结

到这里,小知就已经讲解完了如何处理我们收到的JSON文件了,很多同学看完之后是不是还有些云里雾里呢,如果不太清楚我们rsb语言的话,建议参考一下这篇文章《RSB语言实战》。

从技术角度来看,实现EDI报文的JSON格式转换,在我们的知行EDI系统中还是比较容易的,所以如果大家有这方面的需求或者大家在使用我们知行EDI系统中有任何疑惑的地方都可以通过邮件和我们联系。好了,我们这节课就到这里,下篇再见。

了解更多EDI,请您电话 150-0298-3180 / 177-8250-8152 或邮件 edi@kasoftware.cn 联系我们,获取 30 天全功能 免费试用 版本EDI软件。
标签: , , , , , ,
文章分类 edi 电子数据交换, EDI实施案例, share 知识分享, 动态