mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-28 18:26:18 +08:00
Fix filter walk order for arrays (based on array index) (#1261)
Some checks failed
build_downport / build_downport (push) Has been cancelled
Some checks failed
build_downport / build_downport (push) Has been cancelled
* Fix filter walk order for arrays Fix filter walk order for arrays (based on array index) * removed empty line
This commit is contained in:
parent
cda48f9db7
commit
c47f9ee7c1
|
@ -1800,8 +1800,13 @@ class lcl_filter_runner implementation.
|
|||
method walk.
|
||||
|
||||
data ls_node type z2ui5_if_ajson_types=>ty_node.
|
||||
data lv_tab_key type string.
|
||||
|
||||
loop at mr_source_tree->* into ls_node where path = iv_path.
|
||||
if cs_parent-type = z2ui5_if_ajson_types=>node_type-array.
|
||||
lv_tab_key = 'array_index'. " path + index
|
||||
endif.
|
||||
|
||||
loop at mr_source_tree->* into ls_node using key (lv_tab_key) where path = iv_path.
|
||||
case ls_node-type.
|
||||
when z2ui5_if_ajson_types=>node_type-boolean or z2ui5_if_ajson_types=>node_type-null
|
||||
or z2ui5_if_ajson_types=>node_type-number or z2ui5_if_ajson_types=>node_type-string.
|
||||
|
|
|
@ -4347,15 +4347,47 @@ CLASS ltcl_filter_test IMPLEMENTATION.
|
|||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'b' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'c' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'd' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'e' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'f' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'g' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'h' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'i' ).
|
||||
lo_json->push(
|
||||
iv_path = '/'
|
||||
iv_val = 'j' ).
|
||||
|
||||
lo_json_filtered = z2ui5_cl_ajson=>create_from(
|
||||
ii_source_json = lo_json
|
||||
ii_filter = me ).
|
||||
|
||||
CREATE OBJECT lo_nodes_exp.
|
||||
lo_nodes_exp->add( ' | |array | | |2' ).
|
||||
lo_nodes_exp->add( ' | |array | | |10' ).
|
||||
lo_nodes_exp->add( '/ |1 |str |a |1|0' ).
|
||||
lo_nodes_exp->add( '/ |2 |str |b |2|0' ).
|
||||
lo_nodes_exp->add( '/ |3 |str |c |3|0' ).
|
||||
lo_nodes_exp->add( '/ |4 |str |d |4|0' ).
|
||||
lo_nodes_exp->add( '/ |5 |str |e |5|0' ).
|
||||
lo_nodes_exp->add( '/ |6 |str |f |6|0' ).
|
||||
lo_nodes_exp->add( '/ |7 |str |g |7|0' ).
|
||||
lo_nodes_exp->add( '/ |8 |str |h |8|0' ).
|
||||
lo_nodes_exp->add( '/ |9 |str |i |9|0' ).
|
||||
lo_nodes_exp->add( '/ |10 |str |j |10|0' ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_json_filtered->mt_json_tree
|
||||
|
|
Loading…
Reference in New Issue
Block a user