项目中,组装接口的请求报文和解析返回报文时,用到了模板语言jetbrick-template。
1. 请求报文拼装
如:需要拼装的请求报文格式如下:
那么在后台组装好对象后,可以通过模板取值从而拼接固定格式的报文
2. 响应报文解析
如:发送请求报文成功后,部分返回报文如下,需要对<response>节点下的数据进行解析
主要节点属性
这时需要配置解析模板
需要注意的是:返回报文<response>节点下主要节点属性共有6个,采用上面的解析模板,只有返回全部6个节点的信息时(即返回报文中<response> <record> </record></response>节点中包含了全部6个标签),模板才能全部解析,而在实际情况下,返回报文中只包含查询有值的节点,对于查询无值的节点,如返回示例报文中,只查询到5个节点的值,并未包含<RYPOSPER>节点,这样会导致模板解析报文时获取不到值,解析报错。
这样的返回报文是接口提供方的不严谨导致,即使查询不到值,也应该返回一个空节点(如:<RYPOSPER></RYPOSPER>)来的,在反馈的同时,我也在思考是否有种方法可以解决空节点的问题,答案是将这6个节点的上级节点封装为一个map,通过遍历来解析其包含的所有的值,这样即使返回值只有一个节点,也能顺利解析,同时有效控制了“,”的拼接。
原文地址:https://www.cnblogs.com/zjfjava/p/10212078.html
时间: 2024-10-03 16:38:46