当前位置: 首页 > news >正文

ABAP: JSON 报文解析——/ui2/cl_json

1、JSON数组

报文格式如下,是JSON 数组类型的。

[{"I_TYPE":"V","I_BUSINESSSCOPE":"1001"},{"I_TYPE":"V","I_BUSINESSSCOPE":"1002"}
]

json转换为SAP内表:

TYPES: BEGIN OF ty_in1,I_TYPE(1),I_BUSINESSSCOPE(10),END OF ty_in1.DATA:   gt_in1 TYPE TABLE OF ty_in1,gs_in1 TYPE ty_in1.CALL METHOD /ui2/cl_json=>deserializeEXPORTINGjson = i_json                             "i_json是输入的json字符串CHANGINGdata = gt_in1[].

解析结果:

2、JSON对象+JSON数组

报文格式如下,是有头和行项目的JSON报文

{"IHEADER":{"I_BKTXT":"测试1","I_USNAM":"J007"},"ITEM":[{"I_TYPE":"V","I_BUSINESSSCOPE":"1021"}]
}

sap结构定义如下,需注意头IHEADER和ITEM报文中需和定义的保持一致,

DATA:BEGIN OF ty_header,I_BKTXT(30),I_USNAM(10),END OF ty_header,BEGIN OF ty_item,i_type(1),i_businessscope(10),END OF ty_item,BEGIN OF ty_in2,iheader LIKE ty_header,itable  LIKE TABLE OF ty_item,END OF ty_in2.DATA: is_header LIKE ty_header,it_item   LIKE TABLE OF ty_item.*JSON->内表CALL METHOD /ui2/cl_json=>deserializeEXPORTINGjson = i_json                             "jsonstr是json字符串CHANGINGdata = ty_in2.*另一种方式,同上/ui2/cl_json=>deserialize(EXPORTING json = i_jsonCHANGING data = ty_in2 ).is_header = ty_in2-iheader.it_item = ty_in2-item.

解析结果:

注意:/ui2/cl_json通常都可以解析,需要特别留意的是CHANGING参数的结构的定义,如果定义不一致,可能解析不出来。

参考文档:

SAP之JSON转换 - 知乎

ABAP: 定义结构_abap types 包含表结构_阿达hi的博客-CSDN博客

ABAP 接口开发之HTTP传输JSON的封装和解析_HeathlX的博客-CSDN博客

JSON和SAP内表转化_/ui2/cl_json=>deserialize-CSDN博客

JSON格式报文介绍参考:

JSON入门看这一篇就够了 - 知乎

json的几种标准格式_json格式-CSDN博客

http://www.lryc.cn/news/249096.html

相关文章:

  • android NDK相关,调用C库,JNI,交叉编译,跨平台
  • 汽车功能安全ISO26262
  • Node.js+Express+Nodemon+Socket.IO构建Web实时通信
  • 广州华锐互动:AR可视化展示昆虫让教学过程更直观生动
  • .NET开源的处理分布式事务的解决方案
  • 如何隐藏选择选项值并用新值替换2个选项?
  • [读论文][跑代码]BK-SDM: A Lightweight, Fast, and Cheap Version of Stable Diffusion
  • 机器学习的复习笔记1
  • 【Spring Boot】如何集成Swagger
  • 优化-查询数据接口太慢
  • c++ 谓词
  • 一篇总结 Linux 系统启动的几个汇编指令
  • python技术栈之单元测试中mock的使用
  • LeetCode(37)矩阵置零【矩阵】【中等】
  • [Python入门系列之十一]在windows上安装OpenCV
  • 论文阅读——SEEM
  • Python入门06布尔值
  • js查询详情接口控制执行时间的命令
  • Linux系统iptables
  • 每日一题 1410. HTML 实体解析器(中等,模拟)
  • Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
  • 对抗产品团队中的认知偏误:给产品经理的专家建议
  • element-ui表格无法横向拖动问题
  • 每天学习一点点之 MySQL TINYINT
  • 【数据集】未来不同情景下预测数据:如人口、土地利用等
  • TDA4VM EVM开发板调试笔记
  • 项目里边更换了同名的图片地址 / 图片没有及时更新 / 什么原因
  • RandomAccessFile学习笔记
  • 主流数据库类型总结
  • 程序员养生之道