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

解析后的数据结构:

相关推荐
小疯仔15 小时前
轨迹在地图上“漂“了 500 米?一文吃透 WGS-84→GCJ-02 坐标转换引擎(GPX→JSON 实战源码剖析)
小程序·json·notepad++
Flynt18 小时前
"只输出 JSON"根本不够:LLM 结构化输出的坑,我实测了 60 次调用
llm·json
她说..1 天前
MySQL 与 Java 的 JSON 数据处理
java·mysql·json·springboot
爱喝水的鱼丶1 天前
SAP-ABAP: BAdI 开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流·开发交流
牛油果子哥q2 天前
C++对接LLM完整工程:异步HTTP请求、JSON解析、超时容错、重连兜底
c++·http·json
小刘在重生~2 天前
Django|Ajax 入门、JSON 返回、ECharts 图表、文件上传完整笔记
ajax·django·json
谢斯4 天前
[unity]如何在unity中添加newtonsoft-json
unity·json·游戏引擎
2601_962066935 天前
短视频批量制作怎么做?2026年用 huasheng-cli 的 --json 与退出码,一张选题表批量出片
json·音视频
oliver_sys_log6 天前
老项目 json-lib 2.4 JSONTokener 精度丢失问题排查
json
IT_Octopus6 天前
JSON 日志里的 `{“$ref“:“$.xxx“}`:从 fastjson 兼容包到原生 fastjson2 的迁移实录
开发语言·python·json