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

  • 相关阅读:
    【GO】GO语言学习笔记一
    【GO】GO语言学习笔记三
    【GO】GO语言学习笔记二
    linux 安装Ngnix
    【GO】GO语言学习笔记四
    【GO】GO语言学习笔记五
    Extjs4.1 gridPanel动态列
    Extjs4.1 gridPanel单元格背景颜色渲染
    Extjs4.1中动态改变gridpanel的数据源
    Extjs4.1 vtype验证
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9903585.html
Copyright © 2020-2023  润新知