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

假設我有這個JSON字符串以下圖所示: json

個人任務是解析出上圖黑色方框裏的幾個字段,好比ObjectID, ETag, BuyerID, DateTime, ID, Name等等,把它們的值存儲到對應ABAP變量裏。ui

下面是ABAP解析方案。code

  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:blog

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.string

總之,ABAP裏定義的結構,其字段名和層次結構必須和JSON字符串一致。class

  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.

執行上述代碼,發現反序列化成功: 變量

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

相關文章
相關標籤/搜索