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 ...
随机推荐
- javaweb项目搭建|前端项目【包含增删改查,mysql】二
首先,新建一个javaweb项目[前提已经下载tomcat,mysql,此实验idea版本为2022,其他版本可能位置不一样] File->New->Project 起一个项目名称(随便起 ...
- c# 高并发必备技巧(三)
前面两篇文章主要是介绍了如何解决高并发情况下资源争夺的问题.但是现实的应用场景中除了要解决资源争夺问题,高并发的情况还需要解决更多问题,比如快速处理业务数据等, 本篇文章简要罗列一下与之相关的更多技术 ...
- [ABC261C] NewFolder(1)
Problem Statement For two strings $A$ and $B$, let $A+B$ denote the concatenation of $A$ and $B$ in ...
- 数据仓库——Hive
数据仓库:是一个用于储存,分析,报告的数据系统 数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持 数仓专注分析 数据仓库仓库为何而来,解决什么问题的? 为了分析数据而来,分析结 ...
- JDK8提供的常用计量单位
时间计量单位:Duration @DurationUnit(ChronoUnit.HOURS) private Duration serverTimeout; 空间计量单位:DataSize @Dat ...
- HDU-2586 How far away?
There are n houses in the village and some bidirectional roads connecting them. Every day peole alwa ...
- 数字孪生结合GIS系统为物流行业带来的改变
随着全球物流业务不断扩张和发展,数字化转型成为当今物流行业的主要趋势.在这个数字化时代,数字孪生技术和地理信息系统(GIS)的结合,为物流行业带来了前所未有的机遇和挑战.这种融合将为物流企业提供更高效 ...
- 浅谈android的activity
说道activity,大家可以说是熟悉的不能再熟悉,首先,先来个镇楼图, 个人觉得谷歌的这张图,比别的什么生命周期图都好;说下各个生命周期注意的: 1:onstart()时,activity可见; 2 ...
- javacv图片美颜处理,视频美颜处理
javacv图片美颜处理,视频美颜处理 国产剧明星演戏自带十级滤镜,是众所周知的秘密: 使用opencv也能实现一定的美颜效果: 一.图片美颜 代码 package top.lingkang.test ...
- OpenCV计算机视觉学习(15)——浅谈图像处理的饱和运算和取模运算
如果需要其他图像处理的文章及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractic ...