`
JerryWang_SAP
  • 浏览: 1043768 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

ABAP,Java和JavaScript的序列化,反序列化

阅读更多

ABAP

1. ABAP提供了一个工具类cl_proxy_xml_transform,通过它的两个方法abap_to_xml_xstring和xml_xstring_to_abap实现两种格式的互换。


REPORT zxm.

DATA: ls_abap TYPE zzcrmost__pro001dotproduct1.

DATA: ls_line LIKE LINE OF ls_abap-item.

ls_line-logsys = 'AG3'.

ls_line-object_family = '0401'.

ls_line-product_id = 'MCF-0001'.

ls_line-product_type = '01'.

APPEND ls_line TO ls_abap-item.

ls_line-logsys = 'QDD'.

ls_line-object_family = '0402'.

ls_line-product_id = 'MCF-0002'.

ls_line-product_type = '02'.

APPEND ls_line TO ls_abap-item.

DATA(xml) = cl_proxy_xml_transform=>abap_to_xml_xstring( EXPORTING abap_data = ls_abap ddic_type = 'ZZCRMOST__PRO001DOTPRODUCT1' ).

DATA: ls_abap2 LIKE ls_abap,

ls_abap3 LIKE ls_abap.

cl_proxy_xml_transform=>xml_xstring_to_abap( EXPORTING ddic_type = 'ZZCRMOST__PRO001DOTPRODUCT1' xml = xml IMPORTING abap_data = ls_abap2 ).

ASSERT ls_abap2 = ls_abap.

最后一行的ASSERT语句,说明从ABAP格式转换成XML格式,再转换成ABAP格式,转换前的ABAP数据和转换后的ABAP数据是完全相同的。

如果我们单步调试工具类cl_proxy_xml_transform,发现它也没有神奇之处,

 

内部生成了一个ABAP simple transformation,以此来实现ABAP和XML格式的互相转换。

 

在调试器里记录下这个生成的transformation ID,然后用事务码STRANS打开,就可以看到明细了。

 

2. 有了方法1单步调试发现simple transformation的提示,我们可以用另一种更简单的办法实现两种格式的互换,即直接调用simple transformation:

DATA: lv_xml TYPE string.

CALL TRANSFORMATION id SOURCE b = ls_abap RESULT XML lv_xml.

生成的XML的根节点名称为b,因为上面代码调用参数SOURCE,将ABAP变量ls_abap传入时,绑定的参数名为“b”。

CALL TRANSFORMATION id SOURCE XML lv_xml RESULT b = ls_abap3.

ASSERT ls_abap2 = ls_abap3. 用这种方式进行ABAP->XML->ABAP仍然能得到最初的ABAP变量的值。

Java

定义一个简单的Employee类。

注意第12行代码,gender字段前面的关键字:transient。意思是告诉Java序列化框架,在序列化和反序列化时,不要考虑该gender字段。

 

第12行的代码将Employee类的实例,jerry写入了文件tempFile中。

 

将文件中的内容还原成对象实例:

 

打印输出:

Set id called: I042416

Employee {name='Jerry Wang', id=I042416, gender=male, birthday=Tue Aug 07 14:24:51 CST 2018}

Employee {name='Jerry Wang', id=I042416, gender=null, birthday=Tue Aug 07 14:24:51 CST 2018}

可以看到将原始对象实例序列化成文件,再反序列化成对象实例后,两个实例的内容除了gender字段因为刻意被忽略后,其他字段的值都相同。然而两个对象实例的地址已经在序列化前后已经发生了变化。

JavaScript

将JSON对象序列化成JSON字符串: JSON.stringify


var a = { "name": "Jerry", "skill": "Java" };

var b = JSON.stringify(a);

将JSON字符串反序列化成JSON对象:

var c = JSON.parse(b);

 

同Java一样,通过反序列化再序列化后得到的对象地址同原始对象不同。

 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

 
0
0
分享到:
评论

相关推荐

    sap abap调用java生成的webservice手册

    输入WSDL URL并完成生成,这将创建一系列ABAP类和接口,用于与Java Web Service通信。 5. **生成Port和实例调用** 生成代理后,需要创建一个Port实例,这个实例是实际调用Web Service的载体。在ABAP代码中,通过...

    SAP ABAP与JAVA之间通过RFC传递数据实例

    通过配置JCo服务器程序以及编写相应的ABAP和JAVA代码,可以实现跨系统的数据传输和处理功能。这对于集成不同技术平台的应用系统来说是非常重要的技术手段之一。此外,本案例还强调了在开发过程中需要注意的一些细节...

    Abap programming

    本主题聚焦于“ABAP编程”与“JavaScript”的结合,探讨如何在SAP环境中集成这两种技术以构建更丰富的用户界面和交互体验。 一、ABAP基础 ABAP是SAP的核心编程语言,用于开发SAP模块,如财务、人力资源、供应链管理...

    java +abap+rfc

    Java与SAP ABAP之间的通信主要通过Remote Function Call (RFC)接口实现,这是一种标准化的方式,允许不同系统间的双向数据交换。在本项目中,我们使用了JCo3(Java Connector version 3)库,它是SAP提供的Java API...

    JAVA与ABAP之间通过RFC互传数据_JCO实例及API

    在IT领域,尤其是在企业级应用开发中,Java和ABAP(Advanced Business Application Programming)是两种常用的编程语言。Java广泛应用于互联网应用,而ABAP则是SAP系统的核心编程语言。为了实现不同系统的集成和数据...

    abap objects for java developers.pdf

    - **构造函数**:ABAP支持类似于Java的构造函数,用于初始化类的实例。 综上所述,《ABAP Objects for Java Developers》是一份极具价值的参考资料,它不仅介绍了ABAP的核心概念和技术细节,还强调了ABAP与Java之间...

    30天学会ABAP很好的教程

    ABAP,全称为Advanced ...总的来说,ABAP是一门强大且灵活的编程语言,对于希望在SAP系统中进行定制化开发的程序员来说,30天的学习计划是一个很好的起点,通过系统的练习和实践,可以逐步掌握ABAP的核心技术和应用。

    ABAP加密和解密.doc

    在ABAP编程中,加密和解密是两个关键的安全操作,用于保护敏感数据不被未经授权的用户访问。本文将深入探讨ABAP环境下的加密和解密技术,以及如何在实际应用中实施这些技术。 首先,我们需要理解加密的基本原理。...

    SAP ABAP 开发环境和开发工具介绍

    ABAP WORKBENCH 是一个基于 GUI 的开发环境,提供了一个图形化的界面,开发者可以使用它来创建、测试和部署 ABAP 程序。 ABAP WORKBENCH 的主要功能包括: * 编辑器:提供了一个图形化的编辑界面,开发者可以使用...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    ABAP支持工作流的开发,允许自定义业务流程,实现自动化任务调度和审批。 8. Web服务和接口: ABAP 4.7版本开始支持SOAP和RESTful Web服务,使得SAP系统能与其他系统进行集成和数据交换。 9. 调试和测试: SAP...

    ABAP开发规范和命名规则

    ABAP开发规范和命名规则是IBM提供的一套开发标准和命名惯例,为ABAP开发者提供了详细的开发指南和命名规则,以确保开发的程序代码质量和可读性。本文将对ABAP开发规范和命名规则进行详细的解释和说明。 一、文档...

    abap tips abap tips

    abap tips abap tips abap tips abap tips abap tips

    ABAP 调用ABAP PROXY

    1. **实例化Proxy对象**:在ABAP程序中,首先需要创建Proxy类的实例。 2. **参数设置**:根据服务接口的要求,设置调用所需的输入参数。 3. **调用方法**:通过Proxy对象调用相应的方法执行服务。 4. **处理返回结果...

    ABAP培训教材

    1. ABAP和Java的互操作性:通过ABAP Java Bridge(AJB),ABAP程序可以调用Java组件,反之亦然。 2. OData服务:ABAP可以创建OData服务,实现与移动设备和Web应用的集成。 八、ABAP开发工具 SAP提供了一系列的开发...

    abap学习资料abap

    作为ABAP的学习资料,"ABAP学习资料abap"包含了针对初学者和进阶者的全面教程,旨在帮助用户在三个月内掌握ABAP的基础到高级知识。 文档“ABAP三月通.doc”很可能包含以下关键知识点: 1. **ABAP概述**:介绍ABAP...

    ABAP基本概念了解

    ABAP Objects引入了面向对象的概念,包括类、对象、继承、封装和多态等特性,使ABAP更加现代化,适应复杂系统的需求。 **Web Dynpro ABAP** Web Dynpro ABAP是一种用于开发企业级Web应用程序的技术。它提供了可视化...

    abap xlsx2 demo 程序

    "abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中读取和写入Excel文件。在这个程序中,开发者可能使用了特定的库或者自定义开发的函数来实现与Excel的交互。 首先,要理解ABAP如何处理.xlsx文件,...

    ABAP WorkBenchABAP WorkBench

    ABAP WorkBench的深度和广度远不止于此,它还包括对Business Workflow的支持、Web服务的集成以及与Java等其他技术的互操作性。通过持续学习和实践,开发者可以充分利用ABAP WorkBench,构建出满足企业复杂需求的高效...

Global site tag (gtag.js) - Google Analytics