abap javascript json

   最近想找一下ABAP中有无对JSON解析的支持,在SDN上找了几个FM,可惜支持都不是很好。发现ABAP Object中有一个类是 CL_JAVA_SCRIPT,提供了JS代码,JS文件编译运行的支持,试用了下,发现对一个简单的结构的JSON还是能解析的。代码如下:

DATA: grf_js_engine TYPE REF TO cl_java_script,
      g_result type string.


DATA: grf_ex_root TYPE REF TO cx_root,
      g_text      TYPE string.

START-OF-SELECTION.

  TRY.
      CALL METHOD cl_java_script=>create
        EXPORTING
          stacksize = 8096
          heapsize  = 640000
        RECEIVING
          ref       = grf_js_engine.
    CATCH cx_dynamic_check INTO grf_ex_root.
      g_text = grf_ex_root->get_text( ).
      MESSAGE g_text TYPE 'E'.
  ENDTRY.

  call method grf_js_engine->EVALUATE
        exporting
          JAVA_SCRIPT = 'var kk = {"name":2,"value":''justin''};'    "{tt:[{"name":2,"value":''justin''}]}
        RECEIVING
          result = g_result.

*   TRY.
   CALL METHOD grf_js_engine->get
     EXPORTING
       name   = 'kk'
     receiving
       RESULT = g_result
       .
*    CATCH CX_DYNAMIC_CHECK .
*   ENDTRY.

   data: gt_js type JS_PROPERTY_TAB,
         wa_js type line of JS_PROPERTY_TAB.
*  TRY.
   gt_js =  grf_js_engine->GET_PROPERTIES_SCOPE_GLOBAL( PROPERTY_PATH = 'kk' ).

*   CATCH CX_DYNAMIC_CHECK .
*  ENDTRY.

  write:'result: ', g_result.

 loop at gt_js into wa_js.
   write: / wa_js-name, wa_js-value, wa_js-kind.
 ENDLOOP.

 clear gt_js.
 gt_js =  grf_js_engine->GET_PROPERTIES_SCOPE_GLOBAL( PROPERTY_PATH = 'kk' ).

*   CATCH CX_DYNAMIC_CHECK .
*  ENDTRY.

 loop at gt_js into wa_js.
   write: / wa_js-name, wa_js-value, wa_js-kind.
 ENDLOOP. 

 

PS:如果JSON中嵌套有数组,目前没有找出解析的路径是什么,FT。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值