ABAP JSON格式的互转和解析

这篇博客介绍了如何在ABAP中使用/UI2/CL_JSON类进行JSON与ABAP内表之间的转换。通过示例代码展示了如何将ABAP内表转换为JSON字符串,以及如何将JSON数据反序列化回ABAP内表。演示了/SFLIGHT表的数据选取、序列化和反序列化过程。
摘要由CSDN通过智能技术生成

核心:/UI2/CL_JSON=>SERIALIZE/UI2/CL_JSON=>DESERIALIZE

为什么不使用cl_trex_json_serializer

一个json数组和abap内表的转换

REPORT ZDCH_09_TEST2.

"一个json数组和abap内表的转换
DATA: LT_FLIGHT TYPE STANDARD TABLE OF SFLIGHT,
      LV_JSON   TYPE STRING.

SELECT * FROM SFLIGHT INTO TABLE LT_FLIGHT.

* ABAP内表转JSON
LV_JSON = /UI2/CL_JSON=>SERIALIZE( DATA = LT_FLIGHT COMPRESS = ABAP_TRUE PRETTY_NAME = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE ).
CALL METHOD CL_DEMO_OUTPUT=>DISPLAY( LV_JSON ).

CLEAR LT_FLIGHT.

* JSON转ABAP内表
/UI2/CL_JSON=>DESERIALIZE( EXPORTING JSON = LV_JSON PRETTY_NAME = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE CHANGING DATA = LT_FLIGHT ).
CALL METHOD CL_DEMO_OUTPUT=>DISPLAY( LT_FLIGHT ).

结果:
LV_JSON在这里插入图片描述
用工具美化一下:
在这里插入图片描述

LT_FLIGHT:
在这里插入图片描述
一条json数据和abap结构之间的转换

"一条json数据和abap结构之间的转换
DATA: LW_FLIGHT LIKE SFLIGHT,
      LV_JSON   TYPE STRING.

SELECT SINGLE
  *
  FROM SFLIGHT INTO LW_FLIGHT.

* ABAP内表转JSON
LV_JSON = /UI2/CL_JSON=>SERIALIZE( DATA = LW_FLIGHT COMPRESS = ABAP_TRUE PRETTY_NAME = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE ).
CALL METHOD CL_DEMO_OUTPUT=>DISPLAY( LV_JSON ).


CLEAR LW_FLIGHT.

* JSON转ABAP
/UI2/CL_JSON=>DESERIALIZE( EXPORTING JSON = LV_JSON PRETTY_NAME = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE CHANGING DATA = LW_FLIGHT ).
CALL METHOD CL_DEMO_OUTPUT=>DISPLAY( LW_FLIGHT ).

结果:
LV_JSON
在这里插入图片描述
美化一下:
在这里插入图片描述
LW_FLIGHT:
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP是一种高级编程语言,通常用于SAP系统的开发,它是面向对象的,可扩展的,具有跨平台的特性。而JSON是一种轻量级的数据交换格式,由于它具有易读性,易解析性以及广泛的支持,已经成为Web开发、移动开发等领域的数据传输标准。 对于在SAP系统中使用JSON数据格式的情况,我们需要使用ABAP中的JSON解析器来将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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值