ABAP_TO_JSON

in src/zgoog_cl_data_cluster.clas.abap [0:0]


  METHOD ABAP_TO_JSON.

    serialize(
     EXPORTING
        iv_data    = iv_data
        iv_format  = if_sxml=>co_xt_json
     IMPORTING
        ev_xstring = ev_json_xstring ).

    IF iv_pretty IS NOT INITIAL.

      DATA: lo_reader TYPE REF TO cl_sxml_string_reader.

      lo_reader ?= cl_sxml_string_reader=>create( ev_json_xstring ).

      DATA: lo_writer TYPE REF TO cl_sxml_string_writer.

      lo_writer = cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).

      lo_writer->if_sxml_writer~set_option( option = if_sxml_writer=>co_opt_linebreaks ).
      lo_writer->if_sxml_writer~set_option( option = if_sxml_writer=>co_opt_indent ).

      lo_reader->if_sxml_reader~next_node( ).
      lo_reader->if_sxml_reader~skip_node( lo_writer ).

      ev_json_xstring = lo_writer->get_output( ).

    ENDIF.

    ev_json_string = cl_abap_codepage=>convert_from( ev_json_xstring ).