在接口的参数传递过程中通常会以JSON的方式去传递,这时候就涉及到了JSON串的解析或者生成
"LT_TAB TYPE TABLE
"ZDATA_OUT TYPE STRING
/UI2/CL_JSON=>SERIALIZE(
EXPORTING
DATA = 'LT_TAB'
RECEIVING
R_JSON = ZDATA_OUT ).
JSON串解析如下
"LT_OUTTAB TYPE TABLE
"ZDATA_IN TYPE STRING
"解析JSON
/UI2/CL_JSON=>DESERIALIZE(
EXPORTING
JSON = ZDATA_IN
CHANGING
DATA = LT_OUTTAB ).
有时当参数传入参数是STRING类型时,本地测试的时候JSON数据过长会发生截断的现象,这时候需要用程序去手工拼接了
DATA: BEGIN OF ls_tab,
text TYPE char255,
END OF ls_tab.
DATA: lt_tab LIKE TABLE OF ls_tab.
DATA: lv_string TYPE string.
DATA:filename TYPE string.
PARAMETERS: p_file TYPE string .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '*.TXT'
def_path = ''
mode = 'O'
title = ''
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
filename = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = filename
has_field_separator = 'X'
TABLES
data_tab = lt_tab
EXCEPTIONS
file_open_error = 1.
CLEAR: lv_string.
LOOP AT lt_tab INTO ls_tab.
lv_string = lv_string && ls_tab-text.
ENDLOOP.