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

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

 

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

在轉換前,必需要定義相應的ABAP類型,好比,若是要轉換以下的JSON數據,github

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

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

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的類型定義變成一項勞心勞力的工做...不只要花時間和精力手寫結構定義,一旦出錯,也要花大量時間來排查錯誤。ui

 

JSON2ABAPType是一個開源工具,它能夠經過JSON數據自動生成相應的ABAP結構定義,支持複雜JSON結構,能夠爲開發者節約時間精力。spa

 

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

 

注意事項:htm

1,該工具依賴最新版的/ui2/cl_json,若是你的版本比較舊的話,能夠須要打相關的SAP Notes (25264052629179) 。blog

2019.10.12更新:我已經提交了一個新的PR,用zui2_json代替了/ui2/cl_json,這是樣作爲了解決abap定義中組件順序問題。在這之後,應該再也不須要系統中有/ui2/cl_json。

 

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

3,建議使用ABAPGIT安裝它。

 

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

相關文章
相關標籤/搜索