Преобразование структуры в строку называется сериализация, обратное преобразование называется десериализация. В ABAP для сериализации и десериализации существует специальный класс.
Для получения данных из JSON необходимо объявить структуру с типом аналогичным типу в JSON и использовать класс /ui2/cl_json метод deserialize
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
TYPES: BEGIN OF lty_s_weighing, datetime TYPE string, weight_kg TYPE string, END OF lty_s_weighing, BEGIN OF lty_s_plates, field1 TYPE string, field2 TYPE string, END OF lty_s_plates, BEGIN OF root, plates TYPE TABLE OF lty_s_plates WITH NON-UNIQUE DEFAULT KEY, result_code TYPE string, weighing TYPE TABLE OF lty_s_weighing WITH NON-UNIQUE DEFAULT KEY, END OF root. DATA: lv_json TYPE string. iv_json_data = '{"datetime": "2018-08-29T12:30:00+03:00", "storehouse_id": "ZZZZ-XXX", "terminal_id": 1, "delta_s": 30}' . /ui2/cl_json=>deserialize( EXPORTING json = lv_json CHANGING data = ls_abap ) |
Сериализацию можно произвести воспользовавшись методом serialize