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
       ).

解析后的数据结构:

相关推荐
成为大佬先秃头6 小时前
开放标准(RFC 7519):JSON Web Token (JWT)
spring boot·后端·json·jwt
ZC跨境爬虫7 小时前
Scrapy多级请求实战:5sing伴奏网爬取踩坑与优化全记录(JSON提取+Xpath解析)
爬虫·scrapy·html·json
带刺的坐椅9 小时前
Snack JSONPath 项目架构分析
java·json·java8·jsonpath
试试勇气9 小时前
C++实现json-rpc框架
网络协议·rpc·json
小贾要学习9 小时前
【Linux】应用层自定义协议与序列化
linux·服务器·c++·json
ZC跨境爬虫10 小时前
海南大学交友平台开发实战day7(实现核心匹配算法+解决JSON请求报错问题)
前端·python·算法·html·json
菩提树下的凡夫12 小时前
Qt5环境下Json数据按照设定顺序初始化修改和显示
json
A__tao12 小时前
一键实现 SQL → ES Mapping 转换,支持自定义 `text` 为 `json` 转换
sql·elasticsearch·json
Mike_6661 天前
txt_json和xml_json
xml·python·json
DevOpenClub1 天前
语义化获取站点 JSON 结构内容 API 接口
json