ABAP 中 JSON串的拼接,JSON串解析以及JSON串生成

在接口的参数传递过程中通常会以JSON的方式去传递,这时候就涉及到了JSON串的解析或者生成

"LT_TAB TYPE TABLE 
"ZDATA_OUT TYPE STRING
/UI2/CL_JSON=>SERIALIZE(
    EXPORTING
      DATA             = 'LT_TAB'
    RECEIVING
      R_JSON           = ZDATA_OUT ).

 JSON串解析如下

"LT_OUTTAB TYPE TABLE
"ZDATA_IN TYPE STRING
"解析JSON
 /UI2/CL_JSON=>DESERIALIZE(
 EXPORTING
   JSON             = ZDATA_IN
 CHANGING
   DATA             = LT_OUTTAB ).

有时当参数传入参数是STRING类型时,本地测试的时候JSON数据过长会发生截断的现象,这时候需要用程序去手工拼接了

DATA: BEGIN OF ls_tab,
        text TYPE char255,
      END OF ls_tab.
DATA: lt_tab LIKE TABLE OF ls_tab.

DATA: lv_string TYPE string.
DATA:filename TYPE string.

PARAMETERS:  p_file TYPE string .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_filename     = '*.TXT'
      def_path         = ''
      mode             = 'O'
      title            = ''
    IMPORTING
      filename         = p_file
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

  filename = p_file.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename            = filename
      has_field_separator = 'X'
    TABLES
      data_tab            = lt_tab
    EXCEPTIONS
      file_open_error     = 1.

  CLEAR: lv_string.
  LOOP AT lt_tab INTO ls_tab.
    lv_string = lv_string && ls_tab-text.
  ENDLOOP.

ABAP是一种高级编程语言,通常用于SAP系统的开发,它是面向对象的,可扩展的,具有跨平台的特性。而JSON是一种轻量级的数据交换格式,由于它具有易读性,易解析性以及广泛的支持,已经成为Web开发、移动开发等领域的数据传输标准。 对于在SAP系统使用JSON数据格式的情况,我们需要使用ABAPJSON解析器来将JSON数据转化为ABAP内部的数据结构。在ABAP,有两种常用的JSON解析方式: 1. JSON转换器(SAP内部类型) 这种方式是将JSON字符转换成SAP内部类型的结构(例如table、structure、string、numeric值等),从而方便我们在ABAP程序进行后续的操作。 首先需要通过调用兼容JSON的结构描述语言的类,生成兼容JSON语法的文档类型,之后再根据需要的数据结构,利用WRITE_JSON_FILE函数生成JSON数据格式,最后再将JSON数据格式传入PARSE_JSON()函数解析。 利用JSON转换器的方式,我们可以通过简单的语句实现JSON数据与ABAP内部数据的转化,但是由于其复杂的使用方式,这种方法不太适合在大型的应用使用。 2. JSON解析器接口(SAP内置类) 另外一种解析JSON数据的方式是使用SAP内置的JSON解析器接口,这种方法比较容易理解和使用,也比较适合在大型的应用使用。 ABAP提供了CL_TREX_JSON_PARSER类,它可以处理所有JSON数据结构(例如object、array、value等)并将其转换成ABAP数据类型。利用该类,我们可以轻松地将JSON数据转换为ABAP内部数据结构,同时也能够轻松地将ABAP数据类型转换为JSON数据格式。 总而言之,无论是使用SAP内置的JSON转换器,还是直接在ABAP使用JSON解析器接口,都可以轻松地将JSON数据转换成ABAP内部数据结构,并进行各种操作或者通过HTTP或其他协议与外部系统进行数据交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gong JX

多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值