正如Horst Keller在他的ABAP and JSON帖子中提到的那样,“版本7.02和7.03 / 7.31(Kernelpatch 116)”在ABAP本身支持JSON“。
在我的情况下过于通用的公寓7.02,因为下面的行:
writer = cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).
返回错误:"The field CO_XT_JSON is unknown, but there is a field with the similar name CO_XT_XOP".
那么有没有办法轻松生成JSON?
编辑:SAP的屏幕截图 - 状态
答案 0 :(得分:5)
关于班级 CL_TREX_JSON_SERIALIZER :我在开发移动sap应用程序时也使用了这个类,我发现创建的 JSON无效,因此我开始谷歌搜索并找到了这个http://scn.sap.com/community/mobile/blog/2012/09/24/serialize-abap-data-into-json-format(这也解释了如何创建有效的JSON序列化程序)。 使用json lint http://jsonlint.com/验证你的json以查看它是否有效..否则,确实如此,你在调试它为什么它起作用时会遇到很多麻烦并且没有得到序列化器损坏的观点。问候,zY
答案 1 :(得分:3)
查看ZCL_MDP_JSON
图书馆。您可以解析/编码任何JSON。因此,它最适合需要灵活性的JSON场景。
如果您在其他语言中使用过JSON,则很容易理解。你只需要研究一次ZCL_MDP_JSON_NODE
类的方法。看看这些例子。
以下是该库的扩展概述: http://scn.sap.com/community/abap/blog/2016/07/03/an-open-source-abap-json-library--zclmdpjson
带示例目录的GitHub repo:https://github.com/fatihpense/zcl_mdp_json
免责声明:我是该项目的作者。如果您有任何疑问,请不要犹豫与我联系。
答案 2 :(得分:2)
以下是我为ABAP数据编写的一些代码< - >不久之前的JSON转换是在ABAP中包含新功能之前(或者它可能只是一个旧系统)。
https://gist.github.com/mydoghasworms/2291540
在ABAP源代码中包含代码,并使用类的方法data_to_json
。
答案 3 :(得分:2)
自定义ABAP< - >的概述可以在this blog post
中找到包含另一个的JSON序列化程序从我的观点来看,最受欢迎的是SE38's ZJSON-library,它可以使用SAPLINK进行安装(与其他许多人相比,它具有附加的显式许可证:Apache 2.0
答案 4 :(得分:0)
如果短期内无法升级到较新的补丁,您还可以使用类CL_TREX_JSON_SERIALIZER
将对象序列化为JSON。一点点快速和肮脏的解决方案,但它运作良好。