@@ -358,6 +358,7 @@ CLASS ltcl_fields DEFINITION FINAL FOR TESTING
358358 to_json_without_path FOR TESTING RAISING z2ui5_cx_ajson_error,
359359 to_json_with_path FOR TESTING RAISING z2ui5_cx_ajson_error,
360360 to_abap FOR TESTING RAISING z2ui5_cx_ajson_error,
361+ to_abap_with_slice FOR TESTING RAISING z2ui5_cx_ajson_error,
361362 to_json IMPORTING iv_path TYPE string RETURNING VALUE (rv_result ) TYPE string RAISING z2ui5_cx_ajson_error.
362363
363364
@@ -403,6 +404,33 @@ CLASS ltcl_fields IMPLEMENTATION.
403404
404405 ENDMETHOD .
405406
407+ METHOD to_abap_with_slice .
408+
409+ DATA : BEGIN OF ls_act,
410+ y TYPE i ,
411+ END OF ls_act.
412+
413+ DATA lo_cut TYPE REF TO z2ui5_if_ajson.
414+ DATA lt_mapping_fields TYPE z2ui5_if_ajson_mapping=>ty_mapping_fields.
415+ DATA ls_mapping_field LIKE LINE OF lt_mapping_fields.
416+
417+ CLEAR ls_mapping_field.
418+ ls_mapping_field-abap = 'Y' .
419+ ls_mapping_field-json = 'c' .
420+ INSERT ls_mapping_field INTO TABLE lt_mapping_fields.
421+
422+ lo_cut = z2ui5_cl_ajson=>parse( iv_json = '{"a":1,"b":{"c":2},"d":{"e":3}}'
423+ ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_field_mapping( lt_mapping_fields )
424+ )->slice( `/b` ).
425+
426+ lo_cut->to_abap( IMPORTING ev_container = ls_act ).
427+
428+ cl_abap_unit_assert=>assert_equals(
429+ act = ls_act-y
430+ exp = 2 ).
431+
432+ ENDMETHOD .
433+
406434
407435 METHOD to_json_without_path .
408436
0 commit comments