While searching on how to validate a given JSON string, I found two options. The first simply returns a Boolean value, the second also returns information about what could be wrong.
DATA(lv_json) = '{'
&& '"employee": {'
&& |"name" : "Max", |
&& |"age" : 43, |
&& '}'
&& '}'.
" option 1:
DATA(is_valid) = /ui5/cl_json_util=>is_wellformed( lv_json ).
" option 2:
DATA(lo_reader) = cl_sxml_string_reader=>create( cl_abap_codepage=>convert_to( lv_json ) ).
TRY.
lo_reader->next_node( ).
lo_reader->skip_node( ).
CATCH cx_sxml_parse_error INTO DATA(lx_parse_error).
WRITE lx_parse_error->get_text( ).
ENDTRY.