Loading

ABAP中json数据与内表转换

前言: 在开发对外接口时,有时候需要将内表数据转换为JSON格式输出,或者接收外部接口而来的JSON数据转换为SAP内表数据,今天就来学习下如何将内表数据与JSON数据进行转换。

案例代码:

report zr_demo_json.

* 定义内表
DATA: BEGIN OF gt_itab OCCURS 0,  
      matnr LIKE makt-matnr,  
      maktx LIKE makt-maktx,  
      END OF itab.  


DATA:json_ser TYPE REF TO CL_TREX_JSON_SERIALIZER,  "JSON序列化对象"
     json_des TYPE REF TO CL_TREX_JSON_DESERIALIZER.  "JSON反序列化对象"

DATA:jsonstr TYPE string. 

START-OF-SELECTION.  
* 获取测试数据
    SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_itab  
    FROM makt UP TO 10 ROWS. 

***内表->JSON  
CREATE OBJECT json_ser   "创建JSON序列化对象"
    CALL METHOD json_ser->SERIALIZE.  "初始化对象,转换数据"
        EXPORTING  
        	data = itab[].   
    CALL METHOD json_ser->GET_DATA    "获取转换后的数据"
        RECEIVING  
            rval = jsonstr.  "目标字符串"

WRITE: jsonstr.  

***JSON->内表  
CREATE OBJECT json_des.  "创建JSON反序列化对象"
    CALL METHOD json_des->DESERIALIZE  "反序列化字符串"
        EXPORTING  
            json = jsonstr  "输入JSON字符串"
        IMPORTING  
            abap = itab[].  "目标数据"
    
LOOP AT iatb.
    WRITE: / itab-matnr,itab-maktx.
ENDLOOP.
posted @ 2021-11-10 17:29  Gjboy666  阅读(555)  评论(0编辑  收藏  举报