本文介绍了使用ABAP将数据库查询结果转换为json / yaml / xml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使用ABAP将数据库查询结果转换为json / yaml / xml?

Is there a way to convert a database query result to json/yaml/xml with ABAP?

我是SAP软件开发的新手。

I am new to SAP software development.

推荐答案

    DATA: lt_flight TYPE STANDARD TABLE OF sflight,
          lrf_descr TYPE REF TO cl_abap_typedescr,
          lv_json   TYPE string.

        SELECT * FROM sflight INTO TABLE lt_flight.

        * serialize table lt_flight into JSON, skipping initial fields and converting ABAP field names into camelCase
        lv_json = /ui2/cl_json=>serialize( data = lt_flight compress = abap_true pretty_name = /ui2/cl_json=>pretty_mode-camel_case ).
        WRITE / lv_json.

        CLEAR lt_flight.

* deserialize JSON string json into internal table lt_flight doing camelCase to ABAP like field name mapping
/ui2/cl_json=>deserialize( EXPORTING json = lv_json pretty_name = /ui2/cl_json=>pretty_mode-camel_case CHANGING data = lt_flight ).

* serialize ABAP object into JSON string
lrf_descr = cl_abap_typedescr=>describe_by_data( lt_flight ).
lv_json = /ui2/cl_json=>serialize( lrf_descr ).
WRITE / lv_json.

输出

[{"mandt":"000","carrid":"AA","connid":0017,"fldate":20130515,"price":422.94,"currency":"USD","planetype":"747-400","seatsmax":385,
"seatsocc":375,"paymentsum":192683.30,"seatsmaxB":31,"seatsoccB":31,"seatsmaxF":21,"seatsoccF":19},{"mandt":"000","carrid":"AA",
"connid....
{"ABSOLUTE_NAME":"\\TYPE=%_T00004S00000000O0000012480","ADMIN_TAB":"\\TYPE=%_T00004S00000000O0000012480",
"ADMIN_TAB_LINE":"\\TYPE=%_T00004S00000000O0000012480","DECIMALS":0,"HAS_UNIQUE_KEY":false,"INITIAL_SIZE":0,
"KEY":[{"NAME":"MANDT"},{"NAME":"CARRID"},{"NAME":"CO....

有关更多信息,请阅读

for more information please read Serializer and Deserializer

更新

另一个示例:

首先,您应该使用 CL_SXML_STRING_WRITER Json作为类型,创建 ABAP 到JSON Writer。
然后调用转换将String转换为JSON格式的String。
最后一步是使用JSON检索Writer的输出。

First, you should create the ABAP to JSON Writer with the CL_SXML_STRING_WRITER with Json as Type.Then Call the transformation to convert the String to JSON formatted String .The last Step is to retrieve the Output of the Writer in JSON.

DATA text TYPE string VALUE `Hello JSON, I’m ABAP!`.
DATA writer TYPE REF TO cl_sxml_string_writer.
DATA json TYPE xstring.

    "ABAP to JSON
    writer = cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).
    CALL TRANSFORMATION id SOURCE text = text
                            RESULT XML writer.
    json = writer->get_output( ).

这篇关于使用ABAP将数据库查询结果转换为json / yaml / xml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 09:52
查看更多