一、内表转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 ).
"-----------------------------@斌将军-----------------------------

定期更文,欢迎关注

 
 
此页面的语言为英语
 
翻译为中文(简体)
 
 
 
 
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语
 
随时将英语翻译为中文(简体)PRO
一律不翻译英语
一律不翻译i.cnblogs.com

ABAP 内表与JSON转换的更多相关文章

  1. ABAP 内表与XML转换

    1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...

  2. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)

    *********************************************************************** * Title           : ZSDF003  ...

  3. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW

    *********************************************************************** * Title           : ZSDF002  ...

  4. ABAP 内表的行列转换-发货通知单-打印到Excel里

    需要传入数据到Excel里的模板如上图所示 ********************** *           设计主要逻辑与原理说明                                 ...

  5. ABAP 内表的行列转换-发货通知单2

    *&---------------------------------------------------------------------* *& Report  Z_TEST_C ...

  6. ABAP 内表的行列转换-发货通知单-SLIS

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: VTTP,LIPS,LIKP,KNA1 ,VTTK. DATA: gd_fieldcat TYP ...

  7. ABAP 内表的行列转换-NEW

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: mseg,mkpf. DATA: gd_fieldcat TYPE slis_t_fieldca ...

  8. ABAP 内表的行列转换

    http://www.cnblogs.com/qlp1982/p/3370591.html

  9. ABAP内表数据和JSON格式互转

    本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...

  10. ABAP 内表数据 与 Json串 相互转换

    内表: A B C IMINGZHA  HAIMINGZ AIMINGZH 1 2 3 4 5 6 Json串:  [{a: "IMINGZHA", b: "HAIMIN ...

随机推荐

  1. 在Vue中使用Mock.js虚拟接口数据实例详解

    在Vue项目中使用Mock.js可以方便地模拟接口数据,用于前端开发和测试.Mock.js是一个生成随机数据的库,可以帮助我们快速构建虚拟接口数据.在本文中,我将通过一个实例来详细讲解在Vue中使用M ...

  2. 用友U8和旺店通·企业奇门单据接口对接

    用友U8和旺店通·企业奇门单据接口对接 对接系统旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化 ...

  3. 神经网络优化篇:详解训练,验证,测试集(Train / Dev / Test sets)

    训练,验证,测试集 在配置训练.验证和测试数据集的过程中做出正确决策会在很大程度上帮助大家创建高效的神经网络.训练神经网络时,需要做出很多决策,例如: 神经网络分多少层 每层含有多少个隐藏单元 学习速 ...

  4. springboot下添加日志模块和设置日志文件输出

    前言 日志的使用将通过SLF4J来使用,SLF4J(Simple Logging Facade for Java)是一个为Java应用提供简单日志记录的接口.它的主要目标是在不同的日志系统之间提供一个 ...

  5. ubuntu 20.04系统上安装teleport开源堡垒机

    ubuntu 20.04安装部署teleport堡垒机 简介:Teleport是一款简单易用的开源堡垒机系统,具有小巧.易用的特点,支持 RDP/SSH/SFTP/Telnet 协议的远程连接和审计管 ...

  6. Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)

    对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行.G ...

  7. ACTF flutter逆向学习

    参考了许多大佬的博客,在此特别诚挚感谢oacia大佬和其他大佬的博客和指导! 1.flutter和apk基础结构介绍 首先下载附件,是一个apk文件,用jadx打开 可以看见flutter字样,而fl ...

  8. WeLM微信自研NLP大规模语言模型

    2022年9月份微信AI推出自研NLP大规模语言模型WeLM ,该模型是一个尺寸合理的中文模型,能够在零样本以及少样本的情境下完成包多语言任务在内的多种NLP任务.openai的chatgpt是在20 ...

  9. 文心一言 VS 讯飞星火 VS chatgpt (169)-- 算法导论13.2 2题

    二.用go语言,证明:在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1种可能的旋转. 文心一言: 要证明在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1 种可能的旋转,我们可以按照以下步骤逐步 ...

  10. CentOS 7 部署 Seafile 服务器(使用 MySQL/MariaDB)

    本文档用来说明通过预编译好的安装包来安装并运行基于 MySQL/MariaDB 的 Seafile 服务器.(MariaDB 是 MySQL 的分支) 提示:如果您是初次部署 Seafile 服务,我 ...