ABAP 内表与JSON转换
一、内表转JSON
"-----------------------------@斌将军-----------------------------
TYPES: BEGIN OF ty_name_mapping,
abap TYPE abap_compname,
json TYPE string,
END OF ty_name_mapping. TYPES:BEGIN OF ty_makt,
matnr TYPE makt-matnr,
spras TYPE makt-spras,
maktx TYPE makt-maktx,
END OF ty_makt. DATA:gt_makt TYPE TABLE OF ty_makt,
gs_makt TYPE ty_makt. DATA:ls_mappings TYPE ty_name_mapping,
lt_mappings TYPE HASHED TABLE OF ty_name_mapping WITH UNIQUE KEY abap.
DATA:lv_json TYPE string. "填充内表数据
SELECT
matnr
spras
maktx
FROM makt
INTO TABLE gt_makt
WHERE spras = sy-langu. "获取表结构字段
*SELECT
* tabname,
* fieldname
*FROM dd03l
*INTO TABLE @DATA(lt_dd03l)
*WHERE tabname = 'MAKT'
* AND as4local = 'A'. *LOOP AT lt_dd03l INTO DATA(ls_dd03l).
* CLEAR:ls_mappings.
* ls_mappings-abap = ls_dd03l-fieldname.
* ls_mappings-json = ls_dd03l-fieldname.
* TRANSLATE ls_mappings-json TO LOWER CASE.
* INSERT ls_mappings INTO TABLE lt_mappings.
*ENDLOOP. "内表的字段为大写,转成JSON的键需要小写,
*"在转换时配置字段映射
*"获取内表结构字段
*DATA(lo_table_basic) = CAST cl_abap_tabledescr( cl_abap_tabledescr=>describe_by_data( gt_makt ) ).
*DATA(lo_struct_basic) = CAST cl_abap_structdescr( lo_table_basic->get_table_line_type( ) ).
*DATA(lt_dd03l) = lo_struct_basic->get_components( ).
*
*"配置内表字段与JSON键的映射
*LOOP AT lt_dd03l INTO DATA(ls_dd03l).
* CLEAR:ls_mappings.
* ls_mappings-abap = ls_dd03l-name.
* ls_mappings-json = ls_dd03l-name.
* TRANSLATE ls_mappings-json TO LOWER CASE.
* INSERT ls_mappings INTO TABLE lt_mappings.
*ENDLOOP.
DATA:lv_pre_name TYPE char1.
lv_pre_name = 'L'."JSON键为小写
"内表转JSON
lv_json = /ui2/cl_json=>serialize( data = gt_makt pretty_name = lv_pre_name name_mappings = lt_mappings ). WRITE:lv_json.
"-----------------------------@斌将军-----------------------------
二、JSON转内表
"-----------------------------@斌将军-----------------------------
"JSON转内表
REFRESH:gt_makt.
/ui2/cl_json=>deserialize( EXPORTING json = lv_json
pretty_name = /ui2/cl_json=>pretty_mode-camel_case
CHANGING data = gt_makt ).
"-----------------------------@斌将军-----------------------------
定期更文,欢迎关注

- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语
一律不翻译英语
一律不翻译i.cnblogs.com
ABAP 内表与JSON转换的更多相关文章
- ABAP 内表与XML转换
1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...
- ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)
*********************************************************************** * Title : ZSDF003 ...
- ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW
*********************************************************************** * Title : ZSDF002 ...
- ABAP 内表的行列转换-发货通知单-打印到Excel里
需要传入数据到Excel里的模板如上图所示 ********************** * 设计主要逻辑与原理说明 ...
- ABAP 内表的行列转换-发货通知单2
*&---------------------------------------------------------------------* *& Report Z_TEST_C ...
- ABAP 内表的行列转换-发货通知单-SLIS
REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: VTTP,LIPS,LIKP,KNA1 ,VTTK. DATA: gd_fieldcat TYP ...
- ABAP 内表的行列转换-NEW
REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: mseg,mkpf. DATA: gd_fieldcat TYPE slis_t_fieldca ...
- ABAP 内表的行列转换
http://www.cnblogs.com/qlp1982/p/3370591.html
- ABAP内表数据和JSON格式互转
本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...
- ABAP 内表数据 与 Json串 相互转换
内表: A B C IMINGZHA HAIMINGZ AIMINGZH 1 2 3 4 5 6 Json串: [{a: "IMINGZHA", b: "HAIMIN ...
随机推荐
- Python 潮流周刊#27:应该如何处理程序的错误?
你好,我是猫哥.这里每周分享优质的 Python.AI 及通用技术内容,大部分为英文.本周刊开源,欢迎投稿.另有电报频道作为副刊,补充发布更加丰富的资讯. 产品推荐 Walles.AI 是一款适用于所 ...
- 深度分析C#中Array的存储结构
数组是C#中最基础的存储结构之一,很多的存储结构其底层的实现中都是基于数组实现的,如:List.Queue.Stack.Dictionary.Heap等等,如果大家读过这些类型的底层实现源码,其实就可 ...
- python进程状态
思考 为啥我VS编辑器里一直在import中报错,但是写到笔记本里就可以直接用 之前俄罗斯方块也是同样问题 安装 pip install transitions 代码 from transitions ...
- C#使用SqlSugar操作MySQL数据库实现简单的增删改查
公众号「DotNet学习交流」,分享学习DotNet的点滴. SqlSugar简介 SqlSugar 是一款 老牌 .NET 开源多库架构ORM框架(EF Core单库架构),由果糖大数据科技团队 维 ...
- 配置postcss-pxtorem报:options has an unknown property 'plugins'
闲聊: 小颖最近在坐大屏相关的项目,要写适配,之前用的:postcss-px2rem.px2rem-loader,和朋友闲聊呢他说他们也在写大屏,不过他们用的 postcss-pxtorem,在写另外 ...
- 【matlab混沌理论】1.4.双摆杆的不同参数模型
双摆杆运动模型.初始条件的微小差异,会导致千差万别的运动现象,这是混沌理论重要体现.主要考虑初始条件有两摆杆长度.质量.初始摆杆角度.重力加速度. input: % 参数定义 L1 = 1; % 第一 ...
- IoC入门案例
1.管理什么?(Service和Dao) 2.如何将被管理的对象告知IoC容器?(配置) 3.被管理的对象交给IoC容器,如何获取IoC容器?(接口) 4.IoC容器得到后,如何从容器中获取到bean ...
- Feign远程调用丢失请求头问题
问题 项目中我使用feign进行远程调用时,在请求头设置了参数(UserId),结果在调用方却收获取不到... 解决办法 feign提供了一个拦截器,在远程调用之前执行 核心代码 package co ...
- 华企盾DSC:wps个人模式无策略组新建的文件仍然加密
解决方法:右键wps安装目录手动解密即可(原因:wps模板被加密导致)
- NetSuite 开发日记 —— 科目类型码
科目类型码可用于搜索判断科目类型 代码实现 var sch = search.create({ type: 'account', filters: ['type', 'anyof', 'Bank'], ...