将json解析为具有小写字段名称的数据结构

tom*_*uyt 4 sap abap json

我正在将JSON解析为ABAP结构,它的工作原理如下:

DATA cl_oops TYPE REF TO cx_dynamic_check.
DATA(text) = `{"TEXT":"Hello ABAP, I'm JSON!","CODE":"123"}`.
TYPES: BEGIN OF ty_structure,
         text TYPE string,
         code TYPE char3,
       END OF ty_structure.
DATA : wa_structure TYPE ty_structure.
TRY.
    text = |\{"DATA":{ text }\}|.
    CALL TRANSFORMATION id OPTIONS clear = 'all' 
         SOURCE XML text 
         RESULT data = wa_structure.
    WRITE: wa_structure-text , wa_structure-code.
  CATCH cx_transformation_error INTO cl_oops.
    WRITE cl_oops->get_longtext( ).
ENDTRY.
Run Code Online (Sandbox Code Playgroud)

有趣的是,CODE和TEXT区分大小写.对于大多数外部系统而言,拥有所有CAPS标识符都是丑陋的,所以我一直试图解析{"text":"Hello ABAP, I'm JSON!","code":"123"}而没有任何成功.我查看了选项,我看着是否有一个改变后的副本id完成了这个,我用Google搜索并且不知道如何实现这一点.

tom*_*uyt 6

事实证明,SAP有一个关于如何做到这一点示例程序. 基本上有一个开箱即用的转换,为你做这件事demo_json_xml_to_upper.这个名字有点不幸,所以我建议重命名这个转换并将其添加到客户命名空间.

我有点沮丧,这只能通过xstrings工作,所以调试它会变得很痛苦.但是,它完美无缺并解决了我的问题.