JSON2ABAPType:根據JSON數據結構生成ABAP類型定義


一圖表明本文將要介紹的工具:

 

JSON是常見的數據格式,經常用於接口開發。ABAP開發者通常使用/ui2/cl_json來把JSON數據轉換為相應的ABAP類型

在轉換前,必須要定義相應的ABAP類型,比如,如果要轉換如下的JSON數據,

{
    "KEY1": "VALUE1",
    "KEY2": "VALUE2"
}

則必須定義相應的ABAP結構類型,

TYPES: BEGIN OF t_record,
        key1 TYPE string,
        key2 TYPE string,
       END OF t_record.

轉換的代碼如下,

types: begin of t_record,
         key1 type string,
         key2 type string,
       end of t_record.

data: json type string.
data: record type t_record.

json = '{"key1": "VALUE1",  "key2": "VALUE2"}'.

/ui2/cl_json=>deserialize( exporting json = json changing data = record ).

這是一個簡單例子,如果JSON的格式復雜,會讓record的類型定義變成一項勞心勞力的工作...不僅要花時間和精力手寫結構定義,一旦出錯,也要花大量時間來排查錯誤。

 

JSON2ABAPType是一個開源工具,它可以通過JSON數據自動生成相應的ABAP結構定義,支持復雜JSON結構,可以為開發者節約時間精力。

 

項目地址:https://github.com/fidley/JSON2ABAPType

 

注意事項:

1,該工具依賴最新版的/ui2/cl_json,如果你的版本比較舊的話,可以需要打相關的SAP Notes (25264052629179) 。

2019.10.12更新:我已經提交了一個新的PR,用zui2_json代替了/ui2/cl_json,這是樣做為了解決abap定義中組件順序問題。在這以后,不再需要系統中有/ui2/cl_json。

 

2,JSON數據中的字段是可以省略的,注意要通過完整的JSON結構生成ABAP定義,否則可能生成不完整的ABAP定義(感謝ABAP亮亮的提示)。

3,建議使用ABAPGIT安裝它。

 

安裝后,使用事務代碼SE38運行程序ZJSON2ABAPTYPE。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM