in src/zgoog_i_demo_struct_output_imp.prog.abap [0:0]
METHOD get_json_schema_struct.
DATA: lt_struc_components TYPE abap_component_tab.
DATA(lo_struct) = CAST cl_abap_structdescr( cl_abap_structdescr=>describe_by_name( iv_struct ) ).
construct_schema_struct(
EXPORTING it_components = lo_struct->get_components( )
CHANGING ct_components = lt_struc_components ).
DATA(ls_schema_object) = VALUE t_schema_object( type = 'OBJECT' ).
DATA(lo_properties_struc) = cl_abap_structdescr=>get( lt_struc_components ).
CREATE DATA ls_schema_object-properties TYPE HANDLE lo_properties_struc.
ASSIGN ls_schema_object-properties->* TO FIELD-SYMBOL(<ls_properties>).
populate_schema_struct( EXPORTING it_components = lo_struct->get_components( )
CHANGING cs_schema = <ls_properties> ).
rv_schema = /ui2/cl_json=>serialize(
data = ls_schema_object
ts_as_iso8601 = abap_true
compress = abap_true
pretty_name = /ui2/cl_json=>pretty_mode-low_case ).