如何在7.02之前的ABAP中编码JSON

如何在7.02之前的ABAP中编码JSON,json,abap,Json,Abap,正如霍斯特·凯勒(Horst Keller)在他的文章中提到的,“在7.02和7.03/7.31版本(Kernelpatch 116)中,JSON在ABAP中本机支持” 在我的例子中,显然是7.02太通用了,因为下面的行: writer=cl\u sxml\u string\u writer=>create(type=if\u sxml=>co\u xt\u json)。 返回错误:“字段CO_XT_JSON未知,但有一个字段的名称与CO_XT_XOP相似”。 那么有没有办法轻松生成JSON?

正如霍斯特·凯勒(Horst Keller)在他的文章中提到的,“在7.02和7.03/7.31版本(Kernelpatch 116)中,JSON在ABAP中本机支持”

在我的例子中,显然是7.02太通用了,因为下面的行:

writer=cl\u sxml\u string\u writer=>create(type=if\u sxml=>co\u xt\u json)。

返回错误:
“字段CO_XT_JSON未知,但有一个字段的名称与CO_XT_XOP相似”。

那么有没有办法轻松生成JSON?

编辑:SAP屏幕截图-状态


如果短期内无法升级到较新的修补程序,您还可以使用class
CL\u TREX\u JSON\u序列化程序
将对象序列化为JSON。有一点快速和肮脏的解决方案,但它工作得很好。

关于类CL\u TREX\u JSON\u SERIALIZER:我在开发移动sap应用程序时也使用了这个类,我发现创建的JSON无效,因此我开始搜索并发现了这个问题(这也解释了如何创建有效的JSON序列化程序)。
用json lint验证json,看看它是否有效。否则,可以肯定的是,在调试它为什么不起作用时会遇到很多麻烦,并且不会发现序列化程序已损坏。关于这一点,zY

这是我不久前为ABAP数据json转换编写的一些代码,在ABAP包含新功能之前(或者可能只是一个旧系统)


将代码包含在您的ABAP源代码中,并使用类的方法
data\u to\u json

查看
ZCL\u MDP\u json
库。您可以解析/编码任何json。因此,它最适合需要灵活性的json场景

如果您在其他语言中使用过JSON,这很容易理解。您只需要学习一下
ZCL\u MDP\u JSON\u NODE
类的方法,并查看示例

以下是该库的扩展概述:

GitHub repo及其示例目录:


免责声明:我是该项目的作者。如果您有任何疑问,请随时与我联系。

可以在


从我的观点来看,最受欢迎的是可以使用SAPLINK安装的软件(与其他许多软件相比)它附带了明确的许可证:Apache 2.0

那么,您使用的是哪种修补程序级别?不确定7.02应该是什么组件。请检查系统-->状态以了解完整的修补程序级别。感谢您的回复。附件是两个屏幕短片。它们是否明确了我的修补程序级别?是的,这将是7.02修补程序级别3。我们使用PL12,常量存在-也许你会升级到一个相当新的堆栈…谢谢,我会看一看。