mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
ajson, Automatic Update (#6844)
Co-authored-by: larshp <larshp@users.noreply.github.com> Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
f7d2384e16
commit
6183f2d30d
|
@ -992,12 +992,19 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
|||
|
||||
WHEN zif_abapgit_ajson_types=>node_type-string.
|
||||
" TODO: check type ?
|
||||
IF is_node_type-type_kind = lif_kind=>date AND is_node-value IS NOT INITIAL.
|
||||
<container> = to_date( is_node-value ).
|
||||
ELSEIF is_node_type-type_kind = lif_kind=>time AND is_node-value IS NOT INITIAL.
|
||||
<container> = to_time( is_node-value ).
|
||||
ELSEIF is_node_type-type_kind = lif_kind=>packed AND is_node-value IS NOT INITIAL.
|
||||
<container> = to_timestamp( is_node-value ).
|
||||
IF is_node-value IS NOT INITIAL.
|
||||
IF is_node_type-type_kind = lif_kind=>date.
|
||||
<container> = to_date( is_node-value ).
|
||||
ELSEIF is_node_type-type_kind = lif_kind=>time.
|
||||
<container> = to_time( is_node-value ).
|
||||
ELSEIF is_node_type-dd->absolute_name = '\TYPE=TIMESTAMP'
|
||||
OR is_node_type-dd->absolute_name = '\TYPE=TIMESTAMPL'.
|
||||
<container> = to_timestamp( is_node-value ).
|
||||
ELSEIF is_node_type-type_kind = lif_kind=>packed. " Number as a string, but not a timestamp
|
||||
<container> = is_node-value.
|
||||
ELSE.
|
||||
<container> = is_node-value.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
<container> = is_node-value.
|
||||
ENDIF.
|
||||
|
|
|
@ -1409,6 +1409,7 @@ CLASS ltcl_json_to_abap DEFINITION
|
|||
timestamp1 TYPE timestamp,
|
||||
timestamp2 TYPE timestamp,
|
||||
timestamp3 TYPE timestamp,
|
||||
timestamp4 TYPE timestampl,
|
||||
END OF ty_complex.
|
||||
|
||||
METHODS to_abap_struc
|
||||
|
@ -1462,6 +1463,9 @@ CLASS ltcl_json_to_abap DEFINITION
|
|||
METHODS to_abap_time
|
||||
FOR TESTING
|
||||
RAISING cx_static_check.
|
||||
METHODS to_abap_str_to_packed
|
||||
FOR TESTING
|
||||
RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_ajson DEFINITION LOCAL FRIENDS ltcl_json_to_abap.
|
||||
|
@ -1491,6 +1495,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
lo_nodes->add( '/ |timestamp1 |str |2020-07-28T00:00:00 | ' ).
|
||||
lo_nodes->add( '/ |timestamp2 |str |2020-07-28T00:00:00Z | ' ).
|
||||
lo_nodes->add( '/ |timestamp3 |str |2020-07-28T01:00:00+01:00 | ' ).
|
||||
lo_nodes->add( '/ |timestamp4 |str |2020-07-28T01:00:00+01:00 | ' ).
|
||||
|
||||
CREATE OBJECT lo_cut.
|
||||
lo_cut->to_abap(
|
||||
|
@ -1509,6 +1514,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
ls_exp-timestamp1 = lv_exp_timestamp.
|
||||
ls_exp-timestamp2 = lv_exp_timestamp.
|
||||
ls_exp-timestamp3 = lv_exp_timestamp.
|
||||
ls_exp-timestamp4 = lv_exp_timestamp.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_mock
|
||||
|
@ -1576,6 +1582,28 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD to_abap_str_to_packed.
|
||||
|
||||
DATA lo_cut TYPE REF TO lcl_json_to_abap.
|
||||
DATA lv_act TYPE p LENGTH 10 DECIMALS 3.
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |str |1.3333 | ' ).
|
||||
|
||||
CREATE OBJECT lo_cut.
|
||||
lo_cut->to_abap(
|
||||
EXPORTING
|
||||
it_nodes = lo_nodes->sorted( )
|
||||
CHANGING
|
||||
c_container = lv_act ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_act
|
||||
exp = '1.333' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD to_abap_value.
|
||||
|
||||
DATA lo_cut TYPE REF TO lcl_json_to_abap.
|
||||
|
|
Loading…
Reference in New Issue
Block a user