如何让Self-Written Transformations for JSON适配任意字段顺序和缺失字段
实现方案
你可以直接通过SAP Simple Transformation的原生语法实现需求,具体写法如下:
- 所有同层级需要映射的字段全部放到
<tt:group>标签内,每个字段单独用<tt:cond>包裹。这个语法组合原生支持任意字段顺序匹配,JSON字段顺序和模板书写顺序不一致也能正常解析,同时JSON缺失对应字段时会自动跳过,不会抛出异常。 - 不需要解析的字段或对象直接添加
<tt:skip>标签即可,比如示例中的__metadata对象,不需要解析的话直接加该标签就会忽略该对象下的所有内容,不会触发异常。 - 自定义字段映射直接调整对应节点属性即可,比如要把JSON返回的
FieldA映射到ABAP结构的自定义字段ZMYFIELD,只需要把对应行的<tt:value ref="$S_RESULT.FIELDA"/>改成<tt:value ref="$S_RESULT.ZMYFIELD"/>即可,不影响顺序兼容和缺失兼容的特性。
扩展写法示例
如果需要新增更多字段映射,直接在<tt:group>下新增对应的<tt:cond>节点即可,参考写法:
<tt:group> <tt:cond> <str name="FieldA"> <tt:value ref="$S_RESULT.FIELDA"/> </str> </tt:cond> <tt:cond> <str name="FieldB"> <tt:value ref="$S_RESULT.FIELDB"/> </str> </tt:cond> <!-- 新增字段示例 --> <tt:cond> <str name="FieldC"> <tt:value ref="$S_RESULT.FIELDC"/> </str> </tt:cond> </tt:group>
内容的提问来源于stack exchange,提问作者user6412004
相关产品推荐
相关产品推荐

