在 ABAP 中生成任何自定義 JSON
可以使用能夠對任何 JSON 編碼/解析的類 ZCL_MDP_JSON 庫。ABAP 本機透過以下功能支援 JSON
使用 JSON-XML-它是一種特殊的 XML 格式,可用於描述 JSON 資料使用 XML 表示形式。
透過定義 ABAP 型別和 JSON 之間的對映。這用於透過身份轉換 ID 進行序列化和反序列化。
因為你可以如在 CALL TRANSFORMATION 語句中作為 XML 源以不同形式指定 JSON 資料,並且可以指定 JSON 作為目標。
檢視以下示例程式碼
示例
DATA text TYPE string VALUE `Hi JSON, ABAP here!`. 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( ). “JSON to ABAP text =`{“TEXT”:”Hi ABAP, JSON here!”}`. CALL TRANSFORMATION id SOURCE XML text RESULT text = text.
JSON/ABAP 序列化器和反序列化器
在 SAP ERP7.40 中,你有一個簡單的轉換,可用於將 ABAP 轉換為 JSON,並將 JSON 轉換為 ABAP。當你需要最大效能且不擔心使用序列化器和反序列化器時,這是最合適的。
你還可以參考以下連結:
https://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+and+Deserializer
ABAP 到 JSON 使用示例
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.
廣告