千家信息网

abap结构或内表怎么实现与json字符串相互转换.

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"abap结构或内表怎么实现与json字符串相互转换."的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月03日abap结构或内表怎么实现与json字符串相互转换.

本篇内容介绍了"abap结构或内表怎么实现与json字符串相互转换."的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

可使用的类有很多,如cl_trex_json_serializer与cl_trex_json_deserializer,SAP也为我们提供了CL_FDT_JSON, /UI2/CL_JSON等来进行JSON的序列化与反序列化。

由于sap的版本问题,可能某些类在服务器上不存在而无法使用。该 博客 作者详细描述了如何用abap代码使用序列化与反序列化,

同时提供了/UI2/CL_JSON的代码,可供 下载 使用。

在此我提供一个将/UI2/CL_JSON代码处理好的includeZBC_UI2_JSON_CLS.txt,供大家在缺少该类的情况下,添加到主程序中使用。

------------------------------------------------------------------------------------------------------------------------------------------

1、如何使用cl_trex_json_serializer与cl_trex_json_deserializer实现序列化与反序列化。

(我的sap版本中没有类cl_trex_json_deserializerZBC_CL_TREX_JSON_DESERIALIZER.txt,include供大家上传使用)

REPORT yaiolos_test_06.
" **********************************************************************
"! Usage examples and documentation can be found on SCN:
" http://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+and+Deserializer
" ********************************************************************** "
INCLUDE zbc_ui2_json_cls.
INCLUDE zbc_cl_trex_json_deserializer.

DATA: lt_flight TYPE STANDARD TABLE OF sflight WITH HEADER LINE,
lv_json TYPE string,
lv_json_out TYPE string,
lv_json_len TYPE i.
DATA:
serializer TYPE REF TO cl_trex_json_serializer,
deserializer TYPE REF TO zcl_trex_json_deserializer.

START-OF-SELECTION.
***序列化
**********************************************************************
*Usage examples and documentation can be found on https://www.cnblogs.com/hhelibeb/p/6617488.html
**********************************************************************
SELECT * FROM sflight INTO TABLE lt_flight.

CREATE OBJECT serializer
EXPORTING
DATA = lt_flight[].

serializer->serialize( ).

lv_json = serializer->get_data( ).

lv_json_out = lv_json.

DO.
lv_json_len = strlen( lv_json_out ).
IF lv_json_len < 100.
WRITE / lv_json_out.
EXIT.
ELSE.
WRITE / lv_json_out+100.
ENDIF.
lv_json_out = lv_json_out+100.

ENDDO.

***反序列化
REFRESH lt_flight.

CREATE OBJECT deserializer.

deserializer->deserialize(
EXPORTING json = lv_json
IMPORTING abap = lt_flight[] ).

LOOP AT lt_flight.
WRITE /: lt_flight-carrid.
ENDLOOP.

2、使用/ui2/cl_json来序列化和反序列化json字符串。

REPORT yaiolos_test_07.
" **********************************************************************
"! Usage examples and documentation can be found on SCN:
" http://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+and+Deserializer
" ********************************************************************** "
INCLUDE zbc_ui2_json_cls.
INCLUDE zbc_cl_trex_json_deserializer.
DATA: lt_flight TYPE STANDARD TABLE OF sflight,
ls_flight TYPE sflight,
lrf_descr TYPE REF TO cl_abap_typedescr,
lv_json TYPE string.

DATA : lv_json_len TYPE i,
lv_json_out TYPE string.
DEFINE macro_write.

lv_json_out = &1.

do.
lv_json_len = strlen( lv_json_out ).
if lv_json_len < 100.
write / lv_json_out.
exit.
else.
write / lv_json_out+100.
endif.
lv_json_out = lv_json_out+100.

enddo.
END-OF-DEFINITION.

START-OF-SELECTION.
SELECT * FROM sflight INTO TABLE lt_flight.

* serialize table lt_flight into JSON, skipping initial fields and converting ABAP field names into camelCase
lv_json = zui2_json=>serialize( data = lt_flight compress = abap_true pretty_name = zui2_json=>pretty_mode-camel_case ).
macro_write lv_json.

CLEAR lt_flight.

* deserialize JSON string json into internal table lt_flight doing camelCase to ABAP like field name mapping
zui2_json=>deserialize( EXPORTING json = lv_json pretty_name = zui2_json=>pretty_mode-camel_case CHANGING data = lt_flight ).

LOOP AT lt_flight INTO ls_flight.
WRITE / ls_flight-carrid.
ENDLOOP.

与1转化的不同点在于字段名是否有"号包含,1的方式使用标准json格式无法解析,2更通用。

"abap结构或内表怎么实现与json字符串相互转换."的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

序列 字符 字符串 代码 结构 内容 情况 更多 版本 知识 不同 实用 学有所成 接下来 不同点 主程序 作者 博客 同时 困境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技行业发展 疫情对互联网科技公司影响 互联网扶贫科技 互联网金融监管科技 中国最先进互联网科技公司 海南科技产业互联网平台 云创客互联网科技公司 移动互联网科技股 科技互联网大厂 重庆互联网医院沙龙医盟信息科技 晓花互联网科技有限公司网址 坤平互联网科技 科技类公司包括互联网吗 乌鲁木齐新华智原互联网科技学校 互联网科技圈年度人物 富国互联网金融科技混合基金 互联网科技快讯热点 互联网领先科技活动 互联网时代高科技布局 广州三三互联网科技有限公司 丰台科技园 互联网 北京禾田雨橡互联网科技 互联网科技美容 盛创互联网科技有限公司 中正互联网科技招聘 互联网科技公司需要的职位 天速互联网络科技有限公司 杭州壁岐互联网科技有限公司 速维有品互联网信息科技(苏州)有限公司 美国互联网科技公司
0