使用/UI2/CL_JSON等从JSON动态创建内部表

2020-08-21 03:03发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我需要调用一个API,...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

我需要调用一个API,该API返回一个JSON结构,该结构可能会发生变化(添加或删除字段),尽管我需要的字段始终在此处(不确定位置),但是在那里。

我刚刚发现了/UI2/CL_JSON类,它可以很好地获取和美化JSON,但是后来我无法动态创建内部表来访问数据。

我尝试了所有有关RTTS和cl_abap_xxdescr类的知识,但均未成功。 我可以将数据移到字段符号中并查看它,但是随后我无法做其他围绕CL_ABAP_REFDESCR类的操作,因此我无法读取结构。

有人可以帮助我吗?

谢谢!!!!!

这是JSON结构

 {
   " d":{
     "结果":[
       {
         " RebateNo":" 1234567890",
         " ValidFromDate":"/img/Date(1427839200000)/",
         " ValidToDate":"/img/Date(1459375200000)/",
         "类型":" ZZZZ",
         "状态":" Z",
         " SalesGroup":" Z",
         "所有者":" JOHN SMITH",
         " CustomerNo":" 12345",
         " CustomerName":" JOHN SMITH",
         " CustomerVAT":" 12345"
         }
       },
 .....
 }
 

这是我到目前为止的代码。

 尝试。
     调用转换sjson2html源XML响应
                                    结果XML DATA(formatted_json)。

   捕获cx_xslt_runtime_error。
     cl_abap_browser => show_html(
       出口
         title ='出了点问题-继续'
         html_string = response)。
 ENDTRY。

 如果formatted_json不是INITIAL。

   数据:TEMP TYPE REF TO数据。
   FIELD-SYMBOLS:类型数据。

   调用方法/ui2/cl_json => generate
     出口
       json =回应
       pretty_name =/ui2/cl_json => pretty_mode-camel_case
 * name_mappings =
     接收
       rr_data =温度

   DATA(lo_data)=/ui2/cl_data_access => create(ir_data = temp iv_component ='d-results')-> ref()。

   如果lo_data已绑定。
     ASSIGN lo_data-> *至。

     数据lo_desc TYPE REF至CL_ABAP_TYPEDESCR。

     lo_desc = cl_abap_refdescr => describe_by_data(p_data = lo_data)。

   万一。

     cl_abap_browser => show_html(
       出口
         title ='JSON文件-继续'
         html_string = cl_abap_codepage => convert_from(formatted_json))。

 万一。

 

这是我在字段符号中看到的:表和深层结构,但是没有名称,所以我无法访问它。

debug-ui2-json.jpg (42.7 kB)