字符串到JSON序列化器的长度是否限制为255个字符?

2020-08-30 19:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在构建将s4ha...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在构建将s4hana与外部Web服务集成在一起的应用程序,例如。 ariba的成功因素。 因此,我们的s4hana abap正在使用基于python的rest api。 在将主体参数传递给rest api调用时,我正在将字符串结构序列化为json格式,这将被我们的rest api接受。 例如,

body_in_string:

" Attribute1":" Value1",

" Attribute2":" Value2",

" Attribute3":[{" Sub-attri1":" Name1"},[{" Sub-attri2":" Name2"},[{" Sub-attri3":" Name3"},[{" Sub -attri4":" Name4"},[{" Sub-attri5":" Name5"},[{" Sub-attri6":" Name6"},[{" Sub-attri7":" Name7"},[{ " Sub-attri8":" Name8"},[{" Sub-attri9":" Name9"},[{" Sub-attri10":" Name10"}],

" Attribute4":" Value4",

" Attribute5":" Value5",

" Attribute6":" Value6",

" Attribute7":" Value7"

我正在使用

/ui2/cl_json =>序列化(data = body_in_string compress = abap_false pretty_name =/ui2/cl_json => pretty_mode-camel_case)。

将上述字符串序列化为json格式

{" Attribute1":" Value1",

" Attribute2":" Value2",

" Attribute3":[{" Sub-attri1":" Name1"},[{" Sub-attri2":" Name2"},[{" Sub-attri3":" Name3"},[{" Sub -attri4":" Name4"},[{" Sub-attri5":" Name5"},[{" Sub-attri6":" Name6"},[{" Sub-attri7":" Name7"},[{ " Sub-attri8":" Name8"},[{" Sub-attri9":" Name9"},[{" Sub-attri10":" Name10"}],

" Attribute4":" Value4",

" Attribute5":" Value5",

" Attribute6":" Value6",

" Attribute7":" Value7"}

/ui2/cl_json序列化程序仅将字符串序列化为json,最多255个字符,其余部分被截断。 我也尝试过-

数据lo_json_writer类型参考cl_sxml_string_writer。
lo_json_writer = cl_sxml_string_writer => create(type = if_sxml => co_xt_json)。
呼叫转换ID
源正文= body_in_string
结果XML lo_json_writer。 >

也尝试过

数据lr_json_serializer类型参考cl_trex_json_serializer。
创建对象lr_json_serializer
导出
data = body_in_string。
lr_json_serializer-> serialize()。
lv_body = lr_json_ser。/p>

所有选项都将body_in_string上面的255个字符后的字符串值截断为json序列化。

请帮助!。

8条回答
小c菟菟
2020-08-30 20:11

内部表sap_t_dc_ec_req。 请找到示例代码段。


数据lv_body TYPE字符串。
数据sap_v_len TYPE i。

TYPES:ty_request的开始,
attribute1 TYPE字符串,
attribute2 TYPE字符串,
attribute3 TYPE ztt_fields,
attribute4 TYPE字符串,
attribute5 TYPE字符串,
attribute6 TYPE字符串,
ty_request的结尾。
数据:sap_s_dc_ec_req TYPE ty_request,
sap_t_dc_ec_req TYPE STAND。 br>
ls_fields-field ='DUMMY'。
ls_fields-attribute = NAME'。
将ls_fields附加到lt_fields。

ls_fields-field ='DUMMY'。
ls_fields- 属性='NAME2'。
附加ls_fields到lt_fields。

ls_fields-field ='DUMMY'。
ls_fields-attribute ='NAME3'。
附加ls_fields到lt_fields。

* &&& ---为Rest api调用准备请求参数---
sap_s_dc_ec_req-attribute1 ='127.0.0.1'。
sap_s_dc_ec_req-attribute2 = sy-uname。
sap_s_dc_ec_req-attribute6 =' 420EEE10A8A00041EE9BAEE6CBF223D5CC9'。
sap_s_dc_ec_req-attribute4 ='DUMMY'。
sap_s_dc_ec_req-attribute3 [] = lt_fields []。

* &&& ---获取utc时间
sap_s_dc_ec_req-attribute5 ='2019-10-10T15:41:02Z'。
* &&&-移至表格< br> APPEND sap_s_dc_ec_req TO sap_t_dc_ec_req。
* &&&--创建并返回JSON主体请求以进行剩余调用---
TRY。
*选项3 ui2/json序列化器

 lv_body =/ui2/cl_json =>序列化(data = sap_t_dc_ec_req compress = abap_false pretty_name =/ui2/cl_json => pretty_mode-camel_case)。

一周热门 更多>