METHOD tamplates_1 .
WRITE:/ '*** tamplates_1 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** JSON --> ABAP' .
DATA v_abap_str TYPE string VALUE 'Isto é uma string ABAP'.
data(v_writer) = cl_sxml_string_writer=>CREATE(
type = if_sxml=>CO_XT_JSON
).
CALL TRANSFORMATION ID SOURCE text = v_abap_str
RESULT XML v_writer.
DATA(v_json) = v_writer->GET_OUTPUT( ).
cl_demo_output=>DISPLAY_JSON( v_json ).
write: / | DATA v_abap_str TYPE string VALUE 'Isto é uma string ABAP'. |.
write: / |.|.
write: / | data(v_writer) = cl_sxml_string_writer=>CREATE( |.
write: / | type = if_sxml=>CO_XT_JSON |.
write: / | ). |.
write: / |.|.
write: / | CALL TRANSFORMATION ID SOURCE text = v_abap_str |.
write: / | RESULT XML v_writer. |.
write: / |.|.
write: / | DATA(v_json) = v_writer->GET_OUTPUT( ). |.
write: / |.|.
write: / | cl_demo_output=>DISPLAY_JSON( v_json ). |.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** ABAP --> JSON' .
WRITE:/ '*** ' .
DATA v_json_str type string VALUE '{"ATTR":"Isto é uma string JSON"}'.
DATA v_abap_str TYPE string.
CALL TRANSFORMATION id
SOURCE XML v_json_str
RESULT attr = v_abap_str .
cl_demo_output=>display( |attr={ v_abap_str } | ).
write:/ | DATA v_json_str type string VALUE ["ATTR":"Isto é uma string JSON" ]. |.
write:/ |.|.
write:/ | DATA v_abap_str TYPE string.|.
write:/ |.|.
write:/ | CALL TRANSFORMATION id|.
write:/ | SOURCE XML v_json_str|.
write:/ | RESULT attr = v_abap_str .|.
write:/ |.|.
write:/ | cl_demo_output=>display( attr = [ v_abap_str ] ).|.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 -' .
WRITE:/ '*** ' .
WRITE:/ '*** JSON (tabela)' .
WRITE:/ '*** ' .
types:
BEGIN OF y_tp1,
campo1 type char10,
campo2 type char20,
END OF y_tp1.
data(s1) = VALUE y_tp1(
campo1 = 'valor1'
campo2 = 'valor2'
).
DATA(v_writer) =
cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).
CALL TRANSFORMATION id
SOURCE s1json = s1
RESULT XML v_writer.
DATA(v_json) = v_writer->get_output( ).
cl_demo_output=>display_json( v_json ).
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_4 .
WRITE:/ '*** tamplates_4 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** JSON --> ABAP (tipo complexo)' .
WRITE:/ '*** ' .
DATA v_json_str type string VALUE '{"ATTR1":"valor1","ATTR2":"valor2" }'.
data v_abap_str type string .
CALL TRANSFORMATION id
SOURCE XML v_json_str
RESULT attr1 = v_abap_str.
cl_demo_output=>display( | ATTR1 = { v_abap_str } | ).
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_5 .
WRITE:/ '*** tamplates_5 - '.
WRITE:/ '*** JSON --> ABAP (tipo complexo 2)' .
WRITE:/ '*** ' .
write:/ | DATA v_json_str type string VALUE '["JSONS1":["ATTR1":"valor1","ATTR2":"valor2" ]]'. |.
write:/ | TYPES: |.
write:/ | BEGIN OF y_tp1, |.
write:/ | attr1 type char10, |.
write:/ | attr2 type char20, |.
write:/ | END OF y_tp1. |.
write:/ | DATA s1 type y_tp1. |.
write:/ | CALL TRANSFORMATION id |.
write:/ | SOURCE XML v_json_str |.
write:/ | RESULT jsons1 = s1. |.
write:/ | cl_demo_output=>display( |.
* write:/ | "|",'ATTR1='&&'[ s1-attr1 ]'&&'\nATTR2=[ s1-attr2 ]| |'.
* write:/ | ]. |.
DATA v_json_str type string VALUE '{"JSONS1":{"ATTR1":"valor1","ATTR2":"valor2" }}'.
TYPES:
BEGIN OF y_tp1,
attr1 type char10,
attr2 type char20,
END OF y_tp1.
DATA s1 type y_tp1.
CALL TRANSFORMATION id
SOURCE XML v_json_str
RESULT jsons1 = s1.
cl_demo_output=>display(
|ATTR1={ s1-attr1 }\nATTR2={ s1-attr2 }|
).
ULINE.
ENDMETHOD.
WRITE:/ '*** tamplates_1 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** JSON --> ABAP' .
DATA v_abap_str TYPE string VALUE 'Isto é uma string ABAP'.
data(v_writer) = cl_sxml_string_writer=>CREATE(
type = if_sxml=>CO_XT_JSON
).
CALL TRANSFORMATION ID SOURCE text = v_abap_str
RESULT XML v_writer.
DATA(v_json) = v_writer->GET_OUTPUT( ).
cl_demo_output=>DISPLAY_JSON( v_json ).
write: / | DATA v_abap_str TYPE string VALUE 'Isto é uma string ABAP'. |.
write: / |.|.
write: / | data(v_writer) = cl_sxml_string_writer=>CREATE( |.
write: / | type = if_sxml=>CO_XT_JSON |.
write: / | ). |.
write: / |.|.
write: / | CALL TRANSFORMATION ID SOURCE text = v_abap_str |.
write: / | RESULT XML v_writer. |.
write: / |.|.
write: / | DATA(v_json) = v_writer->GET_OUTPUT( ). |.
write: / |.|.
write: / | cl_demo_output=>DISPLAY_JSON( v_json ). |.
ULINE.
ENDMETHOD.
***
*** Exemplo Simples
***
METHOD tamplates_2 .
WRITE:/ '*** tamplates_2 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** ABAP --> JSON' .
WRITE:/ '*** ' .
DATA v_json_str type string VALUE '{"ATTR":"Isto é uma string JSON"}'.
DATA v_abap_str TYPE string.
CALL TRANSFORMATION id
SOURCE XML v_json_str
RESULT attr = v_abap_str .
cl_demo_output=>display( |attr={ v_abap_str } | ).
write:/ | DATA v_json_str type string VALUE ["ATTR":"Isto é uma string JSON" ]. |.
write:/ |.|.
write:/ | DATA v_abap_str TYPE string.|.
write:/ |.|.
write:/ | CALL TRANSFORMATION id|.
write:/ | SOURCE XML v_json_str|.
write:/ | RESULT attr = v_abap_str .|.
write:/ |.|.
write:/ | cl_demo_output=>display( attr = [ v_abap_str ] ).|.
ULINE.
ENDMETHOD.
***
*** Literal + expression
***
METHOD tamplates_3 .
WRITE:/ '*** tamplates_3 -' .
WRITE:/ '*** ' .
WRITE:/ '*** JSON (tabela)' .
WRITE:/ '*** ' .
types:
BEGIN OF y_tp1,
campo1 type char10,
campo2 type char20,
END OF y_tp1.
data(s1) = VALUE y_tp1(
campo1 = 'valor1'
campo2 = 'valor2'
).
DATA(v_writer) =
cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).
CALL TRANSFORMATION id
SOURCE s1json = s1
RESULT XML v_writer.
DATA(v_json) = v_writer->get_output( ).
cl_demo_output=>display_json( v_json ).
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_4 .
WRITE:/ '*** tamplates_4 - ' .
WRITE:/ '*** ' .
WRITE:/ '*** JSON --> ABAP (tipo complexo)' .
WRITE:/ '*** ' .
DATA v_json_str type string VALUE '{"ATTR1":"valor1","ATTR2":"valor2" }'.
data v_abap_str type string .
CALL TRANSFORMATION id
SOURCE XML v_json_str
RESULT attr1 = v_abap_str.
cl_demo_output=>display( | ATTR1 = { v_abap_str } | ).
ULINE.
ENDMETHOD.
***
***
***
METHOD tamplates_5 .
WRITE:/ '*** tamplates_5 - '.
WRITE:/ '*** JSON --> ABAP (tipo complexo 2)' .
WRITE:/ '*** ' .
write:/ | DATA v_json_str type string VALUE '["JSONS1":["ATTR1":"valor1","ATTR2":"valor2" ]]'. |.
write:/ | TYPES: |.
write:/ | BEGIN OF y_tp1, |.
write:/ | attr1 type char10, |.
write:/ | attr2 type char20, |.
write:/ | END OF y_tp1. |.
write:/ | DATA s1 type y_tp1. |.
write:/ | CALL TRANSFORMATION id |.
write:/ | SOURCE XML v_json_str |.
write:/ | RESULT jsons1 = s1. |.
write:/ | cl_demo_output=>display( |.
* write:/ | "|",'ATTR1='&&'[ s1-attr1 ]'&&'\nATTR2=[ s1-attr2 ]| |'.
* write:/ | ]. |.
DATA v_json_str type string VALUE '{"JSONS1":{"ATTR1":"valor1","ATTR2":"valor2" }}'.
TYPES:
BEGIN OF y_tp1,
attr1 type char10,
attr2 type char20,
END OF y_tp1.
DATA s1 type y_tp1.
CALL TRANSFORMATION id
SOURCE XML v_json_str
RESULT jsons1 = s1.
cl_demo_output=>display(
|ATTR1={ s1-attr1 }\nATTR2={ s1-attr2 }|
).
ULINE.
ENDMETHOD.