云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

轻量服务器_云服务器干嘛的_新用户

小七 141 0

简介:

ABAP到JSON的转换现在是非常普遍的要求。这可以通过使用标准类"/UI2/CL\ujson"轻松完成。这是将ABAP转换为JSON的最佳方法。已经有好几篇博客了。下面是一些链接:-

https://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+和+Deserializer

https://blogs.sap.com/2019/10/16/working-with-javascript-object-notation-json-format-in-abap-serialization-deserialization/

问题陈述:

如前所述,"/UI2/CL\ujson"类非常方便,爱回扣返现网,可能是处理"ABAP到JSON"转换的最佳方法。但是,最近我遇到了一个将ABAP转换为JSON格式的需求,但是类"/UI2/CLïJSON"由于其当前的补丁级别而没有出现在系统中(下面是供参考的屏幕截图)。因此,我想到了利用"自定义转换"和"自定义类"来实现ABAP到JSON的转换,并想与大家分享,这样对大家会有所帮助,你可以把这篇博文放在这里,按照标准类(链接到上面给出的博文)

注意:除了"/UI2/CL\u JSON",我们还有另一个标准类"CL\u SXML\u STRING\u WRITER"和一个标准转换"ID"将ABAP转换成JSON转换。我们确实有一个非常好的博客文章关于相同的。以下是链接

https://blogs.sap.com/2013/01/07/abap-and-json/

但是,"PRETTY\u MODE"选项在这里不可用,它在方法"SERIALIZE"的"/UI2/CL\u JSON"类中可用。因此,转换后的JSON中的"attribute"名称的大小写总是大写的,为了将其转换成驼峰大小写或小写,品高云,什么是物联网工程,我想到了创建一个定制类来达到这个目的。

建议的解决方案:

如果你还和我在一起,我假设你必须为ABAP到JSON的转换提供定制类。以下是我们将在这篇博文中完成的创建我们自己的解决方案的任务。

创建自定义类"ZCL\u JSON\u UTILITY",用于将ABAP转换为JSON。此类将具有以下方法:将ABAP结构转换为JSON格式将ABAP ITAB转换为JSON格式创建自定义转换以转换JSON的属性大小写一个自定义程序,使用类"ZCL\ujson\u实用工具"来显示ABAP到JSON的转换

那么,让我们开始吧!

第一步:创建类"ZCL\u JSON\u UTILITY"

让我们在class builder(t-code–SE24)中创建类"ZCL\u JSON\u UTILITY"。

定义了以下常量,以便JSON的属性可以用正确的大小写格式化(因为我们在class/UI2/CL\u JSON的"SERIALIZE"方法中有"PRETTY\u NAME"参数)。

我们将有3个方法这个班。我们将详细讨论每一个问题。

将\u STUCT \u转换为\u JSON将\u ITAB \u转换为\u JSONCONVERT\u FNAME\u CASE

第2步:创建方法-将\u STUCT\u转换为\u JSON

让我们创建一个方法"CONVERT\u STUCT\u TO \u JSON"。下面是方法签名的截图。

在这个方法中,我们将把结构转换成JSON数据。因此,在这个方法中我们将做以下事情

调用标准转换"ID"将结构转换成JSON格式。数据将采用XSTRING格式。如果我们把它转换成字符串,我们可以看到JSON数据。但是,属性将是大写的。将转换后的JSON数据传递给自定义转换"ZJSON\u XML\u to\u DIFF\u CASE",将其转换为所需的CASE。我们将很快讨论这个转变。一旦数据按照上一点进行了转换,大数据分析方法,我们将收到转换后的xstring格式的JSON。要将其转换为字符串格式,使用"CL\u ABAP\u CODEPAGE"类的"convert\u FROM"方法。给你。你已经完成了转换。简单的说,

方法的源代码:

第三步:方法的创建-将ITAB转换成JSON

在这个方法中,我们必须将ITAB数据转换成JSON格式。同样的任务在这里执行。

下面是签名的屏幕截图。

我们在上一步中遵循的任务,同样我们也必须用这种方法来做事情。下面是完整的源代码。

方法的源代码:

步骤4:创建方法-转换\u FNAME \u CASE

此方法将属性的CASE转换为不同的箱子。这个方法在自定义转换"ZJSON\u XML\u TO\u DIFF\u CASE"中调用,将属性的CASE转换为所需的CASE方法很简单。因此,在细节上不做赘述,

下面是完整的源代码

方法的源代码:

步骤5:创建自定义转换"ZJSON\U XML\U TO\U DIFF\U CASE"

我们必须使用t代码"XSLT\U TOOL"中提供的名称创建自定义转换。转换类型为"X–XSLT Program"。

下面是用XSLT转换编写的代码。您可以看到调用"CONVERT\u FNAME\u CASE"方法将属性名的大小写转换为不同的大小写

第6步:创建异常类"ZCX\u JSON\u CONVERSION\u ERROR",在第2步和第3步描述的方法中使用

下面是为JSON CONVERSION ERROR创建的异常类的屏幕截图

第7步:创建程序"ZABAP_2_JSON"使用上面创建的自定义类将ABAP转换为JSON.

下面是使用自定义类将ABAP转换为JSON的程序的源代码。向方法的参数"IM\u V\u CASE"传递了不同的值,并相应地将属性名转换为JSON.

程序输出:

是否需要本程序中没有的CASE?转到步骤4,更改逻辑并根据需要的格式填充"RT\u V\u FNAME"。您的目的将得到解决。

,大数据分析培训机构