本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表。
注:json字符串格式如:jsonstr = '[ {flag: "0",message: "abc"},{flag: "1",message: "abcdddd"}]'.
另注意转换key value双引号问题
*&---------------------------------------------------------------------*
*& Report Z_YHY_TEST_JSON
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT Z_YHY_TEST_JSON.
DATA: json_ser TYPE REF TO CL_TREX_JSON_SERIALIZER,
json_des TYPE REF TO CL_TREX_JSON_DESERIALIZER.
DATA: jsonstr TYPE string.
DATA: BEGIN OF itab OCCURS ,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF itab. START-OF-SELECTION.
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab
FROM makt UP TO ROWS. ***内表->JSON
CREATE OBJECT json_ser
EXPORTING
data = itab[].
CALL METHOD json_ser->SERIALIZE.
CALL METHOD json_ser->GET_DATA
RECEIVING
rval = jsonstr. WRITE: jsonstr. ***JSON->内表
CREATE OBJECT json_des.
CALL METHOD json_des->DESERIALIZE
EXPORTING
json = jsonstr
IMPORTING
abap = itab[].