如何使用ABAP代码反序列化JSON字符串成ABAP结构「建议收藏」

如何使用ABAP代码反序列化JSON字符串成ABAP结构「建议收藏」如何使用ABAP代码反序列化JSON字符串成ABAP结构

大家好,又见面了,我是你们的朋友全栈君。

假设我有这个JSON字符串如下图所示:

我的任务是解析出上图黑色方框里的几个字段,比如ObjectID, ETag, BuyerID, DateTime, ID, Name等等,把它们的值存储到对应ABAP变量里。

下面是ABAP解析方案。

  1. 首先定义一个ABAP结构,包含需要解析的几个字段。
TYPES: BEGIN OF ty_header,
objectid TYPE string,
buyerid  TYPE string,
datetime TYPE string,
id       TYPE string,
name     TYPE string,
END OF ty_header.
复制代码

然后定义一个ABAP结构,字段名为results,对应本文截图里加了红色下划线的json字符串中的results字段,类型为刚刚定义的ty_header:

TYPES: BEGIN OF ty_result,
results TYPE ty_header,
END OF ty_result.
复制代码

同样,再定义一个ABAP结构ty_d:

TYPES: BEGIN OF ty_d, d TYPE ty_result, END OF ty_d.

总之,ABAP里定义的结构,其字段名和层次结构必须和JSON字符串一致。

  1. 定义一个ABAP变量用于存储反序列化结果,类型为步骤一的ty_d:
DATA: ls_data TYPE ty_d.

WRITE:/ lv_response.

CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = lv_response
CHANGING
data = ls_data.
复制代码

执行上述代码,发现反序列化成功:

要获取更多Jerry的原创文章,请关注公众号”汪子熙”:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106961.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql jdbc url设置时区

    mysql jdbc url设置时区jdbcurljdbc:mysql://59.110.137.112:3306/answer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true设置时区设置时区时,添加serverTimezone参数,比如serverTimezone

    2022年7月17日
    82
  • CTK的编译「建议收藏」

    CTK的编译「建议收藏」CTK的编译CTK主要是一个基于QT的GUI开发框架,用于医学成像、外科导航等相关的项目。典型的应用就是3DSclier。在医学图像的软件开发中,ctk通常和vtk、ITK等开源库一起使用。一些编译的问题在CTK中编译QT的5.10等较高版本时可能遇到的问题:(1)VTK编译错误CTK默认下载的VTK版本比较旧,编译过程可能会遇到C++语法方面的错误,这时可以更改Git中下载的VT…

    2022年6月5日
    32
  • httpclient访问https

    httpclient访问https

    2022年3月6日
    153
  • ubuntu下vscode的使用教程_vscode连接ubuntu虚拟机

    ubuntu下vscode的使用教程_vscode连接ubuntu虚拟机1、安装ffmpegwgethttps://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2tar-xjvfffmpeg-4.1.tar.bz2./configure–prefix=/usr/local/ffmpeg–enable-gpl–enable-version3–enable-nonfree–enable-postproc–enable-pthreads–enable-libfdk-aac–enable-libmp3lame

    2022年9月24日
    3
  • Ubuntu系统设置开机自动运行程序

    Ubuntu系统设置开机自动运行程序

    2020年11月8日
    257
  • toArray方法总结

    toArray方法总结toArray方法涉及java的泛型,反射,数组的协变,jvm等知识。Java标准库中Collection接口定义了toArray方法,如果传入参数为空,则返回Object[]数组,如果传入参数为T[],则返回参数为传入参数的运行时类型。以下是ArrayList的实现:

    2022年5月15日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号