如何使用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的原创文章,请关注公众号”汪子熙”:

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux信号,signal和sigaction(一)[通俗易懂]

    Linux信号,signal和sigaction(一)[通俗易懂]
    信号是Unix和Linux系统响应某些条件而产生的一个事件。接收到该信号的进程会相应地采取一些操作。
    每个信号都有一个数字编码。
     
             实例:Ctrl-C的工作原理
            1.用户输入ctrl-c<

  • springboot框架简介_springboot工作原理

    springboot框架简介_springboot工作原理springboot介绍1、springboot概述springboot对spring的缺点进行改善和优化,基于约定优化配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发效率,也可以缩短项目周期。2、springboot特点为基于spring开发提供更快的入门体验。开箱即用,不需要代码生成,也不需要xml配置,同时也可以修改默认值来满足特定的需求。提供了一些大型项目中常见的非功能特性,如嵌入式服务器、安全、指标,健康检测、外部

  • matlab中直方图的定义_matlab绘制直方图

    matlab中直方图的定义_matlab绘制直方图MATLAB中直方图均衡化和规定化处理函数格式如下:(1)J=imhist(I,n)(2)J=imhist(I,map)(3)[counts,X]=imhist(I,?)(4)J=histeq(I,n)(5)J=histeq(I,map,n)(6)[J,counts]=histeq(I,?)说明:对于…

    2022年10月19日
  • httpclient4.X 设置代理请求(包含账号密码)[通俗易懂]

    httpclient4.X 设置代理请求(包含账号密码)[通俗易懂]最近需要使用Httpclient做后台请求,使用的是httpclient4.3版本,apache网站上有,我这里就不提供下载链接了,搜一下就可以了,废话少说,直接上代码:Java代码  import java.util.ArrayList;  import java.util.List;    import org.apache.http.HttpEntit

  • 企业级发卡网源码下载带代理系统授权搭建教程

    企业级发卡网源码下载带代理系统授权搭建教程  发卡网源码,英文名:Automaticshippingsourcecode,适用于构建在互联网上用于虚拟商品自动发货和交易的网购平台。往往根据用途和规模不同,分为:企业发卡网源码和个人发卡网源码,其核心功能为自动发货和自动收付款,类似于线下的无人售货机。  发卡网只适用于虚拟物品的交易,无法完成实物的交易,由于实物涉及快递时长,不符合发卡网方便快捷的特点。要想搭建一个运转良好的发卡网是需要做大量工作的,但最重要最基础的是搭建的发卡网源码稳定且bug少,不然很难提供频繁的发卡交易服务。 

  • android系统签名工具,android应用实现重启系统+签名「建议收藏」

    android系统签名工具,android应用实现重启系统+签名「建议收藏」1.在AndroidManifest.xml文件的manifest标签中加入一条android:sharedUserId=”android.uid.system”package=”com.ipanel.update”android:versionCode=”1″android:versionName=”1.0″android:sharedUserId=”android.uid.system”&g…

发表回复

您的电子邮箱地址不会被公开。

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