get_json_schema_struct

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 ).