当前位置:主页 > 虚拟主机 > 正文

香港带宽_不知火舞百度云_哪家好

时间:2021-05-03 17:25 来源:埃里克云 编辑:埃里克云

核心提示

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

简介:

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"。您的目的将得到解决。

  • 微软云_美国服务器视频网站_优惠 微软云_美国服务器视频网站_优惠

    随着英国管理脱欧后贸易的能力被置于显微镜下,全球与大萧条时代的经济状况和保护主义的比较也是如此。我早就该深入研究那个时代的经济写作了。比较的要点是惊人的。 凯恩斯...

  • 微软云_亚马逊云计算平台_免费领 微软云_亚马逊云计算平台_免费领

    考虑到即使是英国财政大臣也只"认为自己知道"首相的脱欧想法,尽管议会强烈希望避免"无协议",但很可能会出现依赖世界贸易组织(wto)关税的必要性。在英国受影响最严重的行业...

  • <strong>CDN_存储服务器搭建_最新活动</strong> CDN_存储服务器搭建_最新活动

    jstat是一个简单的实用工具,它存在于JDK中,用于提供与JVM性能相关的统计信息,如垃圾收集、编译活动等。jstat的主要优势在于它能够在JVM运行时动态捕获这些指标,而无需任何必要...

  • <strong>金山云_数据库高级_安全稳定</strong> 金山云_数据库高级_安全稳定

    在这个简短的教程中,我们将构建一个SAP分析云,分析应用程序幻灯片控制器。应用程序显示在大屏幕上,人们可以通过蓝牙与之交互,通过无线设备播放幻灯片。 让我们准备我们需...

  • <strong>中间件_华为云照片在哪找到_免费领</strong> 中间件_华为云照片在哪找到_免费领

    在saps/4hanaplm中,作为简化的一部分,在高级搜索中从搜索参数中提取了许多字段。例如,在标签预先搜索或有效性区域基于标签语言进行搜索。 为了适应这些搜索,我们需要增强搜索...

  • <strong>京东云_腾讯云服务器报价_稳定性好</strong> 京东云_腾讯云服务器报价_稳定性好

    在这个博客里,我将解释在一个标准OWL屏幕中添加超链接以使用extensibility explorer导航到另一个标准业务对象的TI屏幕所需的步骤。 在本例中,我将提供添加超链接以从Sales Quote OWL屏幕...

  • <strong>数据库服务器_华为云存储怎么清理_限时</strong> 数据库服务器_华为云存储怎么清理_限时

    简介: 我得到了从应用服务器读取数据到内部表并下载到演示服务器的要求。 首先我们应该知道如何将内部表数据上传到应用服务器,从那里如何读取应用服务器数据并下载到演示服...

  • <strong>游戏服务器_虚拟主机试用30天_免费领</strong> 游戏服务器_虚拟主机试用30天_免费领

    本系列的第一部分旨在提高对设计一致性重要性的认识。在第二部分中,我提供了更多的背景知识,阐述了一致性对设计和潜在心理过程的影响。第三部分是关于视觉一致性和功能一...

  • <strong>天翼云_云主机windows_速度快</strong> 天翼云_云主机windows_速度快

    因为我第二次看到这个问题,所以我想把这个问题和解决方案一起作为一个博客发布。 一个开发人员发布了一个使用服务绑定的OData服务,并希望使用简单列表报告Fiori应用程序的预览...