一图表明本文将要介绍的工具:

JSON是常见的数据格式,经常用于接口开发。ABAP开发者通常使用/ui2/cl_json来把JSON数据转换为相应的ABAP类型

在转换前,必须要定义相应的ABAP类型,比如,如果要转换如下的JSON数据,

{
"KEY1": "VALUE1",
"KEY2": "VALUE2"
}

则必须定义相应的ABAP结构类型,

TYPES: BEGIN OF t_record,
key1 TYPE string,
key2 TYPE string,
END OF t_record.

转换的代码如下,

types: begin of t_record,
key1 type string,
key2 type string,
end of t_record. data: json type string.
data: record type t_record. json = '{"key1": "VALUE1", "key2": "VALUE2"}'. /ui2/cl_json=>deserialize( exporting json = json changing data = record ).

这是一个简单例子,如果JSON的格式复杂,会让record的类型定义变成一项劳心劳力的工作...不仅要花时间和精力手写结构定义,一旦出错,也要花大量时间来排查错误。

JSON2ABAPType是一个开源工具,它可以通过JSON数据自动生成相应的ABAP结构定义,支持复杂JSON结构,可以为开发者节约时间精力。

项目地址:https://github.com/fidley/JSON2ABAPType

注意事项:

1,该工具依赖最新版的/ui2/cl_json,如果你的版本比较旧的话,可以需要打相关的SAP Notes (25264052629179) 。

2019.10.12更新:我已经提交了一个新的PR,用zui2_json代替了/ui2/cl_json,这是样做为了解决abap定义中组件顺序问题。在这以后,不再需要系统中有/ui2/cl_json。

2,JSON数据中的字段是可以省略的,注意要通过完整的JSON结构生成ABAP定义,否则可能生成不完整的ABAP定义(感谢ABAP亮亮的提示)。

3,建议使用ABAPGIT安装它。

安装后,使用事务代码SE38运行程序ZJSON2ABAPTYPE。

JSON2ABAPType:根据JSON数据结构生成ABAP类型定义的更多相关文章

  1. [数据结构]常见数据结构的typedef类型定义总结

    目录 数据结构类型定义: 1.线性表 线性表(顺序存储类型描述): 线性表(动态存储类型描述) 2.线性表的链式表示 双链表的结点类型描述: 静态链表结点类型的描述: 3.栈的数据结构 顺序栈的数据结 ...

  2. 数据解析(XML和JSON数据结构)

    一   解析 二 XML数据结构 三 JSON 数据结构     一 解析 1  定义: 从事先规定好的格式中提取数据     解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照 ...

  3. CesiumJS新增官方TypeScript类型定义

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 在当前的1.70版本中,CesiumJS现在附带了正式的Type ...

  4. JavaScript 和 TypeScript 交叉口 —— 类型定义文件(*.d.ts)

    在 <从 JavaScript 到 TypeScript 系列> 文章我们已经学习了 TypeScript 相关的知识. TypeScript 的核心在于静态类型,我们在编写 TS 的时候 ...

  5. Go+gRPC-Gateway(V2) 微服务实战,小程序登录鉴权服务(四):客户端强类型约束,自动生成 API TS 类型定义

    系列 云原生 API 网关,gRPC-Gateway V2 初探 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇 Go + gRPC-Gateway(V2) ...

  6. 【JAVAWEB学习笔记】28_jqueryAjax:json数据结构、jquery的ajax操作和表单校验插件

    Ajax-jqueryAjax 今天内容: 1.json数据结构(重点) 2.jquery的ajax操作(重点) 3.jquery的插件使用   一.json数据结构 1.什么是json JSON(J ...

  7. 个人永久性免费-Excel催化剂功能第90波-xml与json数据结构转换表格结构

    在网络时代,大量的数据交互以xml和json格式提供,特别是系统间的数据交互和网络WebAPI.WebService接口的数据提供,都是通过结构化的xml或json提供给其他应用调用返回数据.若能提供 ...

  8. GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,"炒鸡"快!

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  9. json数据结构

    JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合服务器与JavaScript的交互.JSON易于人阅读和编写.同时也易于机器解析和生成.JSON采 ...

随机推荐

  1. Spring Cloud - 切换Ribbon的负载均衡模式

    Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模 ...

  2. python中字典数据类型常用操作

    创建字典 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: ...

  3. springmvc运行流程简单解释(源码解析,文末附自己画的流程图)

    首先看一下DispatcherServlet结构: 观察HandlerExecutionChain对象的创建与赋值,这个方法用来表示执行这个方法的整条链. 进入getHandler方法: 此时的变量h ...

  4. Apache ServiceComb 开源两周年,聊聊其与微服务的前世今生

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  5. 配置基于接口地址池的DHCP

    配置基于接口地址池的DHCP 原理概述 DHCP(动态主机配置协议),采用C/S方式工作,C向S动态请求配置信息,S自动分配配置信息. 基于接口地址池的DHCP服务器,链接这个接口网段的用户都可以从该 ...

  6. UICollectionView 相关方法

    最近闲来无事,整理一下UICollectionView的相关方法以备使用 UICollectionViewFlowLayout和UICollectionViewLayout UICollectionV ...

  7. React Native--Animated:`useNativeDriver`is not supported because the native animated module is missing

    目录 问题描述 解决方法 问题描述 react-native init 项目,在运行中报错 解决方法 打开Xcode项目,点击Libraries文件夹右键Add Files to "项目名& ...

  8. BZOJ 3106: [cqoi2013]棋盘游戏

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 859  Solved: 356[Submit][Status][Discuss] Descriptio ...

  9. 微信小程序 buton清除默认样式

    相信很多小伙伴在开发小程序的时候都会碰到小程序Button默认样式的困扰,在重设样式的时候需要一次次的设置 分享一个自己在开发中的小方法: CSS all 简写属性 将除 unicode-bidi 与 ...

  10. 最全的linux基础命令

    第1章 linux命令 1.1 线上查询及帮助命令 help命令*** help前面接你要查询的命令:例如ls [root@server02 ~]# ls --help 用法:ls [选项]... [ ...