Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS zcl_abapgit_json_path DEFINITION PUBLIC CREATE PUBLIC.
PUBLIC SECTION.
METHODS: serialize
IMPORTING iv_json TYPE string
RETURNING VALUE(rt_result) TYPE string_table
RAISING zcx_abapgit_exception.
METHODS: deserialize
IMPORTING it_json_path TYPE string_table
RETURNING VALUE(rv_result) TYPE string
RAISING zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_json_path IMPLEMENTATION.
METHOD deserialize.
rv_result = lcl_json_path=>deserialize( it_json_path ).
ENDMETHOD.
METHOD serialize.
DATA: lo_json_path TYPE REF TO lcl_json_path,
lv_json_xstring TYPE xstring,
lt_root_path TYPE string_table,
lo_reader TYPE REF TO if_sxml_reader,
lx_parse_error TYPE REF TO cx_sxml_parse_error.
lv_json_xstring = zcl_abapgit_convert=>string_to_xstring_utf8( iv_json ).
lo_reader = cl_sxml_string_reader=>create( input = lv_json_xstring ).
TRY.
IF lo_reader->read_next_node( ) IS INITIAL.
RETURN.
ENDIF.
CATCH cx_sxml_parse_error INTO lx_parse_error.
zcx_abapgit_exception=>raise_with_text( lx_parse_error ).
ENDTRY.
APPEND `$` TO lt_root_path.
CREATE OBJECT lo_json_path.
lo_json_path->serialize_rec( EXPORTING io_reader = lo_reader
it_path = lt_root_path
CHANGING ct_json_paths = rt_result ).
ENDMETHOD.
ENDCLASS.
|