点击此处---> 群内免费提供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)
您不需要动态定义内部表。 如果可以确定所需的字段在结构中,则只需预定义您感兴趣的字段即可。JSON解析器将忽略不相关的字段:
一周热门 更多>