mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Merge branch 'main' into hvam/deps1303
This commit is contained in:
commit
3a5425a9b2
|
@ -848,6 +848,8 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
||||||
DATA lv_path_pattern TYPE string.
|
DATA lv_path_pattern TYPE string.
|
||||||
|
|
||||||
CREATE OBJECT lo_section.
|
CREATE OBJECT lo_section.
|
||||||
|
lo_section->mi_custom_mapping = mi_custom_mapping.
|
||||||
|
|
||||||
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
||||||
lv_path_len = strlen( lv_normalized_path ).
|
lv_path_len = strlen( lv_normalized_path ).
|
||||||
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
||||||
|
|
|
@ -72,7 +72,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
LOOP AT it_skip_paths INTO lv_s.
|
LOOP AT it_skip_paths INTO lv_s.
|
||||||
lv_s = to_lower( lv_s ).
|
lv_s = condense( lv_s ).
|
||||||
APPEND lv_s TO lt_tab.
|
APPEND lv_s TO lt_tab.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
||||||
DELETE lt_tab INDEX sy-tabix.
|
DELETE lt_tab INDEX sy-tabix.
|
||||||
CONTINUE.
|
CONTINUE.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
<s> = condense( to_lower( <s> ) ).
|
<s> = condense( <s> ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ CLASS ltcl_filters_test DEFINITION FINAL
|
||||||
METHODS path_filter_w_patterns FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS path_filter_w_patterns FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
METHODS mixed_case_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,4 +228,36 @@ CLASS ltcl_filters_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD mixed_case_filter.
|
||||||
|
|
||||||
|
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
||||||
|
DATA li_json_filtered TYPE REF TO zif_abapgit_ajson.
|
||||||
|
|
||||||
|
li_json = zcl_abapgit_ajson=>create_empty( ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/a'
|
||||||
|
iv_val = '1' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/bB'
|
||||||
|
iv_val = '2' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/CC'
|
||||||
|
iv_val = '3' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/cc'
|
||||||
|
iv_val = '4' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/d'
|
||||||
|
iv_val = 5 ).
|
||||||
|
|
||||||
|
li_json_filtered = zcl_abapgit_ajson=>create_from(
|
||||||
|
ii_source_json = li_json
|
||||||
|
ii_filter = zcl_abapgit_ajson_filter_lib=>create_path_filter( iv_skip_paths = '/bB,/CC' ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = li_json_filtered->stringify( )
|
||||||
|
exp = '{"a":"1","cc":"4","d":5}' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -358,6 +358,7 @@ CLASS ltcl_fields DEFINITION FINAL FOR TESTING
|
||||||
to_json_without_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
to_json_without_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
to_json_with_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
to_json_with_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
to_abap FOR TESTING RAISING zcx_abapgit_ajson_error,
|
to_abap FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
|
to_abap_with_slice FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
to_json IMPORTING iv_path TYPE string RETURNING VALUE(rv_result) TYPE string RAISING zcx_abapgit_ajson_error.
|
to_json IMPORTING iv_path TYPE string RETURNING VALUE(rv_result) TYPE string RAISING zcx_abapgit_ajson_error.
|
||||||
|
|
||||||
|
|
||||||
|
@ -403,6 +404,33 @@ CLASS ltcl_fields IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD to_abap_with_slice.
|
||||||
|
|
||||||
|
DATA: BEGIN OF ls_act,
|
||||||
|
y TYPE i,
|
||||||
|
END OF ls_act.
|
||||||
|
|
||||||
|
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||||
|
DATA lt_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields.
|
||||||
|
DATA ls_mapping_field LIKE LINE OF lt_mapping_fields.
|
||||||
|
|
||||||
|
CLEAR ls_mapping_field.
|
||||||
|
ls_mapping_field-abap = 'Y'.
|
||||||
|
ls_mapping_field-json = 'c'.
|
||||||
|
INSERT ls_mapping_field INTO TABLE lt_mapping_fields.
|
||||||
|
|
||||||
|
lo_cut = zcl_abapgit_ajson=>parse( iv_json = '{"a":1,"b":{"c":2},"d":{"e":3}}'
|
||||||
|
ii_custom_mapping = zcl_abapgit_ajson_mapping=>create_field_mapping( lt_mapping_fields )
|
||||||
|
)->slice( `/b` ).
|
||||||
|
|
||||||
|
lo_cut->to_abap( IMPORTING ev_container = ls_act ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = ls_act-y
|
||||||
|
exp = 2 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD to_json_without_path.
|
METHOD to_json_without_path.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
INTERFACE zif_abapgit_ajson
|
INTERFACE zif_abapgit_ajson
|
||||||
PUBLIC.
|
PUBLIC.
|
||||||
|
|
||||||
CONSTANTS version TYPE string VALUE 'v1.1.10'. "#EC NOTEXT
|
CONSTANTS version TYPE string VALUE 'v1.1.11'. "#EC NOTEXT
|
||||||
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
|
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
|
||||||
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
|
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user