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

        解析后的数据结构:

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 06:38:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 06:38:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 06:38:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 06:38:05       20 阅读

热门阅读

  1. QT雷达扫描图

    2024-04-26 06:38:05       14 阅读
  2. 【MySQL】数据类型

    2024-04-26 06:38:05       13 阅读
  3. 机器视觉检测为什么是工业生产的刚需?

    2024-04-26 06:38:05       14 阅读
  4. php空合并运算符,三元运算符,PHP高级

    2024-04-26 06:38:05       17 阅读
  5. 使用git将本地项目上传到github

    2024-04-26 06:38:05       11 阅读
  6. Docker搭建Codiad

    2024-04-26 06:38:05       11 阅读
  7. flutter开发实战-混淆minifyEnabled及shrinkResources

    2024-04-26 06:38:05       10 阅读
  8. 安卓手机APP开发__媒体开发部分__调试的日志

    2024-04-26 06:38:05       15 阅读
  9. 2014NOIP普及组真题 1. 珠心算测验

    2024-04-26 06:38:05       15 阅读
  10. 定时任务管理系统详细设计说明书

    2024-04-26 06:38:05       11 阅读
  11. git commit 提交信息规范

    2024-04-26 06:38:05       15 阅读
  12. jmeter分布式压力测试搭建

    2024-04-26 06:38:05       14 阅读