SAP ABAP json字段名映射 name_mappings 大写 小写 驼峰 纵深 /ui2/cl_json
转载:https://www.cnblogs.com/ZJY-1314/p/17786647.html
*&---------------------------------------------------------------------* *& Report ZDZ011 *& ABAP JSON 字段名映射 name_mappings 大写 小写 驼峰 纵深 /ui2/cl_json *& https://answers.sap.com/questions/5319934/modify-hashed-table.html *&---------------------------------------------------------------------* REPORT zdz011 NO STANDARD PAGE HEADING. TABLES: spfli. TYPES: BEGIN OF detail, carrid TYPE spfli-carrid, connid TYPE spfli-connid, fltype TYPE spfli-fltype, period TYPE spfli-period, END OF detail. TYPES: details TYPE STANDARD TABLE OF detail WITH NON-UNIQUE KEY carrid connid. TYPES: BEGIN OF jdata, carrid TYPE spfli-carrid, connid TYPE spfli-connid, cityto TYPE spfli-cityto, airpto TYPE spfli-airpto, fltime TYPE spfli-fltime, deptime TYPE spfli-deptime, arrtime TYPE spfli-arrtime, distance TYPE spfli-distance, distid TYPE spfli-distid, value TYPE co2_string_tb, details TYPE details, END OF jdata. DATA: lw_jdata TYPE jdata, lt_jdata TYPE HASHED TABLE OF jdata WITH UNIQUE KEY carrid connid. DATA: lw_details TYPE detail, lt_details TYPE HASHED TABLE OF detail WITH UNIQUE KEY carrid connid. TYPES: BEGIN OF name_mapping, abap TYPE abap_compname, json TYPE string, END OF name_mapping. DATA: lw_name_mapping TYPE name_mapping, name_mappings TYPE HASHED TABLE OF name_mapping WITH UNIQUE KEY abap. DATA: lv_compress TYPE char1, lv_name TYPE string, lv_pretty_name TYPE char1, lo_type_descr TYPE REF TO cl_abap_typedescr, lv_assoc_arrays TYPE char1, lv_ts_as_iso8601 TYPE char1, lv_expand_includes TYPE char1, lv_assoc_arrays_opt TYPE char1, lv_numc_as_string TYPE char1, lt_name_mappings LIKE name_mappings, lv_conversion_exits TYPE char1. DATA: lv_jsonstr TYPE string, lv_jsonxstr TYPE xstring. TYPES: BEGIN OF t_s_symbol, header TYPE string, name TYPE string, type TYPE REF TO cl_abap_datadescr, value TYPE REF TO data, convexit_out TYPE string, convexit_in TYPE string, compressable TYPE abap_bool, read_only TYPE abap_bool, END OF t_s_symbol. TYPES: t_t_symbol TYPE STANDARD TABLE OF t_s_symbol WITH DEFAULT KEY. SELECTION-SCREEN BEGIN OF BLOCK b101 WITH FRAME TITLE TEXT-101. SELECT-OPTIONS: s_carrid FOR spfli-carrid, s_connid FOR spfli-connid. SELECTION-SCREEN END OF BLOCK b101. INITIALIZATION. START-OF-SELECTION. SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_jdata FROM spfli WHERE spfli~carrid IN s_carrid AND spfli~connid IN s_connid. SORT lt_jdata BY carrid connid. SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_details FROM spfli WHERE spfli~carrid IN s_carrid AND spfli~connid IN s_connid. SORT lt_details BY carrid connid. LOOP AT lt_jdata INTO lw_jdata. lw_details-carrid = 'AZ'. lw_details-connid = '0555'. APPEND 'value1' TO lw_jdata-value. APPEND 'Value2' TO lw_jdata-value. APPEND lw_details TO lw_jdata-details. MODIFY TABLE lt_jdata FROM lw_jdata. ENDLOOP. ULINE. LOOP AT lt_jdata INTO lw_jdata. WRITE:/ lw_jdata-cityto, lw_jdata-deptime, lw_jdata-distid, lw_jdata-fltime. ENDLOOP. lw_name_mapping-abap = 'CARRID'. lw_name_mapping-json = 'Carrid'. " INSERT lw_name_mapping INTO TABLE lt_name_mappings. lw_name_mapping-abap = 'CITYTO'. lw_name_mapping-json = 'CityTo'. "CityTo INSERT lw_name_mapping INTO TABLE lt_name_mappings. lw_name_mapping-abap = 'DEPTIME'. lw_name_mapping-json = '__depTime'. INSERT lw_name_mapping INTO TABLE lt_name_mappings. lw_name_mapping-abap = 'DISTID'. lw_name_mapping-json = 'dist ID'. INSERT lw_name_mapping INTO TABLE lt_name_mappings. lw_name_mapping-abap = 'FLTIME'. lw_name_mapping-json = 'fltime时间'. INSERT lw_name_mapping INTO TABLE lt_name_mappings. CALL METHOD /ui2/cl_json=>serialize EXPORTING data = lt_jdata compress = lv_compress name = lv_name pretty_name = lv_pretty_name type_descr = lo_type_descr assoc_arrays = lv_assoc_arrays ts_as_iso8601 = lv_ts_as_iso8601 expand_includes = lv_expand_includes assoc_arrays_opt = lv_assoc_arrays_opt numc_as_string = lv_numc_as_string name_mappings = lt_name_mappings * conversion_exits = lv_conversion_exits RECEIVING r_json = lv_jsonstr. ULINE. WRITE:/ lv_jsonstr. cl_demo_output=>new( )->write_json( lv_jsonstr )->display( ). REFRESH: lt_jdata. CALL METHOD /ui2/cl_json=>deserialize EXPORTING json = lv_jsonstr jsonx = lv_jsonxstr pretty_name = lv_pretty_name assoc_arrays = lv_assoc_arrays assoc_arrays_opt = lv_assoc_arrays_opt name_mappings = lt_name_mappings * conversion_exits = lv_conversion_exits CHANGING data = lt_jdata. ULINE. LOOP AT lt_jdata INTO lw_jdata. WRITE:/ lw_jdata-cityto, lw_jdata-deptime, lw_jdata-distid, lw_jdata-fltime. ENDLOOP.
posted on 2026-07-16 11:46 seven1314pp 阅读(6) 评论(0) 收藏 举报
浙公网安备 33010602011771号