Caro san,
Enfrentei um problema semelhante no ambiente ABAP do BTP.
A pergunta e sua resposta mostraram-se úteis.
O tipo "string_table" também pode ser utilizado, então adicione-o.
METHOD if_oo_adt_classrun~main.
DATA:
begin of ls_result,
data type string,
* tab type standard table of string with empty key,
tab TYPE string_table,
end of ls_result.
DATA(lv_json_string) = |\{\r\n| &
| "data": "abc",\r\n| &
| "tab": ["a", "b", "c"]\r\n| &
|\}|.
xco_cp_json=>data->from_string( lv_json_string )->apply( VALUE #(
( xco_cp_json=>transformation->camel_case_to_underscore )
( xco_cp_json=>transformation->boolean_to_abap_bool )
) )->write_to( REF #( ls_result ) ).
out->write( ls_result-data ).
LOOP AT ls_result-tab REFERENCE INTO DATA(lr).
out->write( lr->* ).
ENDLOOP.
ENDMETHOD.
Resultado.