ABAP : 内表/工作区转JSON

发布于:2025-08-17 ⋅ 阅读:(10) ⋅ 点赞:(0)

  "内表转JSON
 DATA: lv_str_out TYPE string,
        lv_str_in  TYPE string.
 DATA: json_ser TYPE REF TO zcl_trex_json_serializer

DATA: BEGIN OF lw_body,
        factorycode TYPE string,
        itemcode    TYPE string,
        itemname    TYPE string,
        unit        TYPE string,
        mattype     TYPE string,
        typename    TYPE string,
        matgroup    TYPE string,
        groupname   TYPE string,
      END OF lw_body.

DATA ls_body LIKE lw_body.

 ls_body-factorycode = '2023'.
 ls_body-itemcode    = '100101018'.
 ls_body-itemname    = '测试用'.
 ls_body-unit        = 'PC'.
 ls_body-mattype     = 'Z001'.
 ls_body-typename    = 'Z001测试'.
 ls_body-matgroup    = 'ZS01'.
 ls_body-groupname   = '物料组描述测试'.
 

DATA lt_body LIKE STANDER OF TABLE lw_body.

APPEND ls_body TO lt_body.

"  工作区转JSON

  CREATE OBJECT json_ser
    EXPORTING
      data = ls_body.
  CALL METHOD json_ser->serialize.
  CALL METHOD json_ser->get_data
    RECEIVING
      rval = lv_str_out .

表转JSON

CREATE OBJECT json_ser
    EXPORTING
      data = lt_body[].
  CALL METHOD json_ser->serialize.
  CALL METHOD json_ser->get_data
    RECEIVING
      rval = lv_str_out .

或者  "  如果 字段有驼峰  使用下面的方法

lv_str_out = /ui2/cl_json=>serialize(  data          = ls_body
                                                        compress    = 'X'
                                                       pretty_name = 'X').

lv_str_out = /ui2/cl_json=>serialize(  data        = lt_body[]
                                                       compress    = 'X'
                                                       pretty_name = 'X').


网站公告

今日签到

点亮在社区的每一天
去签到