ABAP 怎样将XML和JSON格式转换为HTML格式显示
一、将JSON格式转换为HTML格式
- BAP接口程序开发中时常会用到JSON格式来传输数据,在监控传输的JSON串内容时,把JSON转换为HTML格式来显示会很便利。
- 下面提供一个简单例子来实现JSON转化为HTML并显示的功能。
- 使用 /ui2/cl_json=>serialize来生成JSON串,
- 调用 TRANSFORMATION sjson2html来转换HTML,
- 使用 cl_abap_browser=>show_html显示HTML。
- 代码:
*&---------------------------------------------------------------------* *& Report ZDEMO_TEST *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT zdemo_test. DATA:lv_json TYPE string, lv_convert TYPE string, lo_json_ser TYPE REF TO cl_trex_json_serializer, lv_err_text TYPE string, lt_ekpo TYPE STANDARD TABLE OF ekpo. SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_ekpo FROM ekpo UP TO 10 ROWS. * 将内表转化为JSON lv_json = /ui2/cl_json=>serialize( data = lt_ekpo[] ). TRY. * 将JSON转换为HTML CALL TRANSFORMATION sjson2html SOURCE XML lv_json RESULT XML DATA(lv_html). CATCH cx_xslt_runtime_error INTO DATA(lo_err). lv_err_text = lo_err->get_text( ). WRITE: lv_err_text. RETURN. ENDTRY. * 显示HTML lv_convert = cl_abap_codepage=>convert_from( lv_html ). cl_abap_browser=>show_html( html_string = lv_convert ).
- 运行后弹出一个窗口显示HTML也可以通过‘+’‘—’来收起或展开JSON,很方便。
二、将HTML格式转换为XML格式
-
将xml字符串展示为格式化的XML格式
SELECT * FROM makt INTO TABLE @DATA(carriers) up to 10 rows. CALL TRANSFORMATION id SOURCE carriers = carriers RESULT XML DATA(xml). cl_demo_output=>begin_section( `Some Text` ). cl_demo_output=>write_text( |blah blah blah \n| && |blah blah blah| ). cl_demo_output=>next_section( `Some Data` ). cl_demo_output=>begin_section( `Elementary Object` ). cl_demo_output=>write_data( carriers[ 1 ]-matnr ). cl_demo_output=>next_section( `Internal Table` ). cl_demo_output=>write_data( carriers ). cl_demo_output=>end_section( ). cl_demo_output=>next_section( `XML` ). cl_demo_output=>write_xml( xml ). cl_demo_output=>display( ). “或者写为下列格式也可 cl_demo_output=>new( )->begin_section( `Some Text` )->write_text( |blah blah blah \n| && |blah blah blah| )->next_section( `Some Data` )->begin_section( `Elementary Object` )->write_data( carriers[ 1 ]-matnr )->next_section( `Internal Table` )->write_data( carriers )->end_section( )->next_section( `XML` )->write_xml( xml )->display( ).
-
展示效果
-
显示为默认的颜色的弹窗
cl_demo_output=>new( 'TEXT' )->display( carriers ).
-
展示效果