如何使用ABAP程式碼反序列化JSON字串成ABAP結構

i042416發表於2018-11-04

假設我有這個JSON字串如下圖所示:


如何使用ABAP程式碼反序列化JSON字串成ABAP結構

我的任務是解析出上圖黑色方框裡的幾個欄位,比如ObjectID, ETag, BuyerID, DateTime, ID, Name等等,把它們的值儲存到對應ABAP變數裡。

下面是ABAP解析方案。

  1. 首先定義一個ABAP結構,包含需要解析的幾個欄位。

TYPES: BEGIN OF ty_header,
objectid TYPE string,
buyerid  TYPE string,
datetime TYPE string,
id       TYPE string,
name     TYPE string,
END OF ty_header.

然後定義一個ABAP結構,欄位名為results,對應本文截圖裡加了紅色下劃線的json字串中的results欄位,型別為剛剛定義的ty_header:

TYPES: BEGIN OF ty_result,
results TYPE ty_header,END OF ty_result.

同樣,再定義一個ABAP結構ty_d:

TYPES: BEGIN OF ty_d,
d TYPE ty_result,
END OF ty_d.

總之,ABAP裡定義的結構,其欄位名和層次結構必須和JSON字串一致。

  1. 定義一個ABAP變數用於儲存反序列化結果,型別為步驟一的ty_d:

DATA: ls_data TYPE ty_d.
WRITE:/ lv_response.CALL METHOD /ui2/cl_json=>deserialize
EXPORTING
json = lv_response
CHANGING
data = ls_data.

執行上述程式碼,發現反序列化成功:


如何使用ABAP程式碼反序列化JSON字串成ABAP結構

如何使用ABAP程式碼反序列化JSON字串成ABAP結構

如何使用ABAP程式碼反序列化JSON字串成ABAP結構


要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

如何使用ABAP程式碼反序列化JSON字串成ABAP結構


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2218631/,如需轉載,請註明出處,否則將追究法律責任。

相關文章