From 45fbfd0feba54e53baa42cd55c1cdf4a39428592 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 09:14:13 +0200 Subject: [PATCH] ajson, Automatic Update (#5412) * [create-pull-request] automated change * Update zcl_abapgit_ajson.clas.locals_imp.abap * Update zcl_abapgit_ajson.clas.locals_imp.abap * update deps * skip Co-authored-by: larshp Co-authored-by: Lars Hvam --- package.json | 8 ++--- .../zcl_abapgit_ajson.clas.locals_imp.abap | 2 +- ...bapgit_ajson_mapping.clas.testclasses.abap | 31 +++++++++++++++++++ test/abap_transpile.json | 1 + 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8071cce5e..2e579ee1c 100644 --- a/package.json +++ b/package.json @@ -25,11 +25,11 @@ ] }, "devDependencies": { - "@abaplint/cli": "^2.85.46", - "@abaplint/runtime": "^1.8.19", - "@abaplint/transpiler-cli": "^1.8.19", + "@abaplint/cli": "^2.85.49", + "@abaplint/runtime": "^1.8.24", + "@abaplint/transpiler-cli": "^1.8.24", "abapmerge": "^0.14.3", "c8": "^7.11.0", - "eslint": "^8.11.0" + "eslint": "^8.12.0" } } diff --git a/src/json/zcl_abapgit_ajson.clas.locals_imp.abap b/src/json/zcl_abapgit_ajson.clas.locals_imp.abap index b9eb49aab..75663a7c6 100644 --- a/src/json/zcl_abapgit_ajson.clas.locals_imp.abap +++ b/src/json/zcl_abapgit_ajson.clas.locals_imp.abap @@ -1354,7 +1354,7 @@ CLASS lcl_abap_to_json IMPLEMENTATION. " and rtti seems to cache type descriptions really well (https://github.com/sbcgua/benchmarks.git) " the structures will be repeated in real life - ls_next_prefix-path = is_prefix-path && is_prefix-name && '/'. + ls_next_prefix-path = is_prefix-path && ls_root-name && '/'. LOOP AT lt_comps ASSIGNING . diff --git a/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap b/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap index e648362c5..22abd7fcf 100644 --- a/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap +++ b/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap @@ -6,6 +6,7 @@ CLASS ltcl_camel_case DEFINITION FINAL FOR TESTING METHODS: to_abap FOR TESTING RAISING zcx_abapgit_ajson_error, to_json FOR TESTING RAISING zcx_abapgit_ajson_error, + to_json_nested_struc FOR TESTING RAISING zcx_abapgit_ajson_error, to_json_first_lower FOR TESTING RAISING zcx_abapgit_ajson_error. ENDCLASS. @@ -64,6 +65,36 @@ CLASS ltcl_camel_case IMPLEMENTATION. ENDMETHOD. + METHOD to_json_nested_struc. + + DATA: + lo_ajson TYPE REF TO zcl_abapgit_ajson, + li_mapping TYPE REF TO zif_abapgit_ajson_mapping. + DATA: + BEGIN OF ls_result, + field_data TYPE string, + BEGIN OF struc_data, + field_more TYPE string, + END OF struc_data, + END OF ls_result. + + li_mapping = zcl_abapgit_ajson_mapping=>create_camel_case( iv_first_json_upper = abap_false ). + + ls_result-field_data = 'field_value'. + ls_result-struc_data-field_more = 'field_more'. + + lo_ajson = zcl_abapgit_ajson=>create_empty( ii_custom_mapping = li_mapping ). + + lo_ajson->set( iv_path = '/' + iv_val = ls_result ). + + cl_abap_unit_assert=>assert_equals( + act = lo_ajson->stringify( ) + exp = '{"fieldData":"field_value","strucData":{"fieldMore":"field_more"}}' ). + + ENDMETHOD. + + METHOD to_json_first_lower. DATA: diff --git a/test/abap_transpile.json b/test/abap_transpile.json index ed19ddc24..021babde3 100644 --- a/test/abap_transpile.json +++ b/test/abap_transpile.json @@ -170,6 +170,7 @@ {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_abap", "note": "secondary key fields? READ WITH KEY, Path not found @/FieldData"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json_first_lower"}, + {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json_nested_struc"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_fields", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_lower", "method": "to_json"},