javascript
ABAP JSON 字段名映射 name_mappings 大写 小写 驼峰 纵深 /ui2/cl_json
/ui2/cl_json?可以非常方便的實現ABAP與JSON的互相轉換,利用?name_mappings?可以實現字段名的大寫,小寫,駝峰命名。
*&---------------------------------------------------------------------* *& 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_jdataFROM spfliWHERE spfli~carrid IN s_carridAND spfli~connid IN s_connid.SORT lt_jdata BY carrid connid.SELECT *INTO CORRESPONDING FIELDS OF TABLE lt_detailsFROM spfliWHERE spfli~carrid IN s_carridAND 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'. "CityToINSERT 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=>serializeEXPORTINGdata = lt_jdatacompress = lv_compressname = lv_namepretty_name = lv_pretty_nametype_descr = lo_type_descrassoc_arrays = lv_assoc_arraysts_as_iso8601 = lv_ts_as_iso8601expand_includes = lv_expand_includesassoc_arrays_opt = lv_assoc_arrays_optnumc_as_string = lv_numc_as_stringname_mappings = lt_name_mappings * conversion_exits = lv_conversion_exitsRECEIVINGr_json = lv_jsonstr.ULINE.WRITE:/ lv_jsonstr.cl_demo_output=>new()->write_json( lv_jsonstr)->display( ).REFRESH: lt_jdata.CALL METHOD /ui2/cl_json=>deserializeEXPORTINGjson = lv_jsonstrjsonx = lv_jsonxstrpretty_name = lv_pretty_nameassoc_arrays = lv_assoc_arraysassoc_arrays_opt = lv_assoc_arrays_optname_mappings = lt_name_mappings * conversion_exits = lv_conversion_exitsCHANGINGdata = lt_jdata.ULINE.LOOP AT lt_jdata INTO lw_jdata.WRITE:/ lw_jdata-cityto, lw_jdata-deptime, lw_jdata-distid, lw_jdata-fltime.ENDLOOP.[
?{
??"Carrid":"AZ",
??"CONNID":555,
??"CityTo":"FRANKFURT",
??"AIRPTO":"FRA",
??"fltime時間":125,
??"__depTime":"19:00:00",
??"ARRTIME":"21:05:00",
??"DISTANCE":845.0000,
??"dist?ID":"MI",
??"VALUE":
??[
???"value1",
???"Value2"
??],
??"DETAILS":
??[
???{
????"Carrid":"AZ",
????"CONNID":555,
????"FLTYPE":"",
????"PERIOD":0
???}
??]
?},
?{
??"Carrid":"AZ",
??"CONNID":788,
??"CityTo":"TOKYO",
??"AIRPTO":"TYO",
??"fltime時間":775,
??"__depTime":"12:00:00",
??"ARRTIME":"08:55:00",
??"DISTANCE":6130.0000,
??"dist?ID":"MI",
??"VALUE":
??[
???"value1",
???"Value2"
??],
??"DETAILS":
??[
???{
????"Carrid":"AZ",
????"CONNID":555,
????"FLTYPE":"",
????"PERIOD":0
???}
??]
?},
?{
??"Carrid":"AZ",
??"CONNID":789,
??"CityTo":"ROME",
??"AIRPTO":"FCO",
??"fltime時間":940,
??"__depTime":"11:45:00",
??"ARRTIME":"19:25:00",
??"DISTANCE":6130.0000,
??"dist?ID":"MI",
??"VALUE":
??[
???"value1",
???"Value2"
??],
??"DETAILS":
??[
???{
????"Carrid":"AZ",
????"CONNID":555,
????"FLTYPE":"",
????"PERIOD":0
???}
??]
?},
?{
??"Carrid":"AZ",
??"CONNID":790,
??"CityTo":"OSAKA",
??"AIRPTO":"KIX",
??"fltime時間":815,
??"__depTime":"10:35:00",
??"ARRTIME":"08:10:00",
??"DISTANCE":6030.0000,
??"dist?ID":"MI",
??"VALUE":
??[
???"value1",
???"Value2"
??],
??"DETAILS":
??[
???{
????"Carrid":"AZ",
????"CONNID":555,
????"FLTYPE":"",
????"PERIOD":0
???}
??]
?}
]
總結
以上是生活随笔為你收集整理的ABAP JSON 字段名映射 name_mappings 大写 小写 驼峰 纵深 /ui2/cl_json的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于电视机中DTV码流对android的
- 下一篇: 360个人图书馆防复制