ABAP json解析使用引用代替预定义数据结构

背景:在解析JSON数据时,通常会事先为定义相应的ABAP数据结构。但是,当遇到一些结构纵深较为复杂的情况时,会比较麻烦。

处理 :使用引用类型来定义结构中的纵深部分来达到"省事"的目的,缺点在于访问时需要使用指针动态访问。也可以参考json转换为abap数据对象并输出数据声明_json 在线转abap-CSDN博客根据已处理好的json(不压缩且包含所有数据)来生成定义部分的代码。

复制代码
DATA json             TYPE string.
DATA pretty_name      TYPE /ui2/cl_json=>pretty_name_mode.
DATA name_mappings    TYPE /ui2/cl_json=>name_mappings.

DATA: BEGIN OF data,
        tab1 TYPE REF TO data,
        tab2 TYPE REF TO data,
      END OF data.

json = `{`
&& `    "TAB1": [{                     `
&& `            "A": "A",              `
&& `            "B": "B",              `
&& `            "C": "C",              `
&& `            "d": "d"               `
&& `        }, {                       `
&& `            "D": "D",              `
&& `            "E": "E",              `
&& `            "F": "F"               `
&& `        }                          `
&& `    ],                             `
&& `    "TAB2": [{                     `
&& `            "KEY": "01",           `
&& `            "VALUE": "第一行"         `
&& `        }`
&& `    ]                              `
&& `}                                  `
.


/ui2/cl_json=>deserialize(
  EXPORTING
    json             = json
    pretty_name      = /ui2/cl_json=>pretty_mode-none
    assoc_arrays     = ''
    assoc_arrays_opt = ''
    name_mappings    = name_mappings
  CHANGING
    data             = data
       ).

解析后的数据结构:

相关推荐
方方洛4 小时前
技术实践总结:schema-bridgion:json、xml、yaml、toml文件相互转换
xml·前端·typescript·node.js·json
提笔了无痕15 小时前
Web中Token验证如何实现(go语言)
前端·go·json·restful
EndingCoder2 天前
配置 tsconfig.json:高级选项
linux·前端·ubuntu·typescript·json
电商API&Tina2 天前
Python请求淘宝商品评论API接口全指南||taobao评论API
java·开发语言·数据库·python·json·php
\xin2 天前
SQL 注入、文件上传绕过、MySQL UDF 提权、SUID 提权、Docker 逃逸,以及 APT 持久化技术渗透测试全流程第二次思路
sql·mysql·docker·容器·渗透测试·json·漏洞
傻啦嘿哟2 天前
构建命令行单词记忆工具:JSON词库与复习算法的完美结合
算法·json
lanicc3 天前
JsonSurfer:高性能、流式 JSON 解析利器
json
☀Mark_LY3 天前
java读取excel文件返回JSON
java·json·excel
love530love3 天前
【故障解析】Stable Diffusion WebUI 更换主题后启动报 JSONDecodeError?可能是“主题加载”惹的祸
人工智能·windows·stable diffusion·大模型·json·stablediffusion·gradio 主题
xiaohutushen3 天前
紧急预警:微软 Edge Webview2 v144 升级导致 SAP GUI 严重白屏故障 (Note 3704912)
前端·microsoft·edge·abap·sap 用户·sap license·usmm