首页 前端知识 ABAP: JSON 报文解析——/ui2/cl_json

ABAP: JSON 报文解析——/ui2/cl_json

2024-08-21 22:08:31 前端知识 前端哥 562 123 我要收藏

1、JSON数组

报文格式如下,是JSON 数组类型的。

[
{
"I_TYPE":"V",
"I_BUSINESSSCOPE":"1001"
},
{
"I_TYPE":"V",
"I_BUSINESSSCOPE":"1002"
}
]
复制

json转换为SAP内表:

TYPES: BEGIN OF ty_in1,
I_TYPE(1),
I_BUSINESSSCOPE(10),
END OF ty_in1.
DATA: gt_in1 TYPE TABLE OF ty_in1,
gs_in1 TYPE ty_in1.
CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = i_json "i_json是输入的json字符串
CHANGING
data = gt_in1[].
复制

解析结果:

2、JSON对象+JSON数组

报文格式如下,是有头和行项目的JSON报文

{
"IHEADER":{
"I_BKTXT":"测试1",
"I_USNAM":"J007"
},
"ITEM":[
{
"I_TYPE":"V",
"I_BUSINESSSCOPE":"1021"
}
]
}
复制

sap结构定义如下,需注意头IHEADER和ITEM报文中需和定义的保持一致,

DATA:BEGIN OF ty_header,
I_BKTXT(30),
I_USNAM(10),
END OF ty_header,
BEGIN OF ty_item,
i_type(1),
i_businessscope(10),
END OF ty_item,
BEGIN OF ty_in2,
iheader LIKE ty_header,
itable LIKE TABLE OF ty_item,
END OF ty_in2.
DATA: is_header LIKE ty_header,
it_item LIKE TABLE OF ty_item.
*JSON->内表
CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = i_json "jsonstr是json字符串
CHANGING
data = ty_in2.
*另一种方式,同上
/ui2/cl_json=>deserialize(
EXPORTING json = i_json
CHANGING data = ty_in2 ).
is_header = ty_in2-iheader.
it_item = ty_in2-item.
复制

解析结果:

注意:/ui2/cl_json通常都可以解析,需要特别留意的是CHANGING参数的结构的定义,如果定义不一致,可能解析不出来。

3、内表转JSON

CALL METHOD /ui2/cl_json=>serialize
EXPORTING
data = gt_out
RECEIVING
r_json = O_JSON.
复制
        输出JSON:
[
{
"EBELN":"4500000107",
"BEDAT":"2016-03-03"
},
{
"EBELN":"4500000109",
"BEDAT":"2016-03-03"
},
{
"EBELN":"4500000119",
"BEDAT":"2016-03-03"
}
]
复制
        下发单条信息:
LOOP AT it_ekko INTO wa_ekko.
o_json = /ui2/cl_json=>serialize( data = wa_ekko ).
ENDLOOP.
复制

o_json = /ui2/cl_json=>serialize( data = wa_ekko  compress = abap_true   pretty_name = abap_true ).

compress = abap_true   pretty_name = abap_true 可以将字段大写转小写。

三条独立的报文:

{"EBELN":"4500000107","BEDAT":"2016-03-03"}
{"EBELN":"4500000109","BEDAT":"2016-03-03"}
{"EBELN":"4500000119","BEDAT":"2016-03-03"}
复制

参考文档:

SAP之JSON转换 - 知乎

ABAP: 定义结构_abap types 包含表结构_阿达hi的博客-CSDN博客

ABAP 接口开发之HTTP传输JSON的封装和解析_HeathlX的博客-CSDN博客

JSON和SAP内表转化_/ui2/cl_json=>deserialize-CSDN博客

JSON格式报文介绍参考:

JSON入门看这一篇就够了 - 知乎

json的几种标准格式_json格式-CSDN博客

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16490.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!