将 JSON 反序列化为表

Ada*_*kus 3 abap json deserialization

我需要从通过 API 接收的数据填充 ABAP 中的表。

我正在使用以下 ABAP 函数从 json 填充现有的 ABAP 表。

JSON 是正确的,表中包含相应的表。

/ui2/cl_json=>deserialize( EXPORTING json = lv_json
                             CHANGING data = lt_abap  ).
Run Code Online (Sandbox Code Playgroud)

运行它会返回一个空白的 lt_abap 表。

将输出更改为结构时,这可以正常工作。但问题是需要一个表,而不是后续调用的结构

/ui2/cl_json=>deserialize( EXPORTING json = lv_json
                             CHANGING data = ls_abap
Run Code Online (Sandbox Code Playgroud)

任何人都可以提出一个解决方案让他将 JSON 放入我的 TABLE 中吗?

JSON:

{
    "Id": "1369130",
    "Venueid": "0005",
    "Userid": "1320625",
    "Menuid": "null",
    "Created": "2019-07-29T08:18:35.000+0000",
    "items": [
      {
        "Id": "4255354",
        "Total": "3.10",
        "Price": "2.80",
        "Qty": "1",
        "Orderid": "1369130",
        "Menuitemid": "1447268",
        "Externalid": "",
        "Name": "Breakfast Roll Deal",
        "modifiers": [
          {
            "Price": "0.00",
            "Qty": "1",
            "Id": "0000001",
            "Orderitemid": "4255354",
            "Externalid": "1000716",
            "Name": "Bacon and Sausage Corn Topped Roll"
          },
          {
            "Price": "0.30",
            "Qty": "1",
            "Id": "00000002",
            "Orderitemid": "4255354",
            "Externalid": "E1001587",
            "Name": "Extra Sausage"
          },
          {
            "Price": "0.00",
            "Qty": "1",
            "Id": "00000003",
            "Orderitemid": "4255354",
            "Externalid": "1000774",
            "Name": "Latte"
          },
          {
            "Price": "0.00",
            "Qty": "1",
            "Id": "00000004",
            "Orderitemid": "4255354",
            "Externalid": "E",
            "Name": "Spread"
          }
        ]
      }
]
  }
Run Code Online (Sandbox Code Playgroud)

表结构完全匹配。

Jag*_*ger 5

你张贴的不是一张桌子。它是一个结构。可以映射到表的 JSON 应该[].

这是一个例子。

REPORT ZZZ.

DATA:
  g_tab_t000 TYPE STANDARD TABLE OF t000 WITH EMPTY KEY.

START-OF-SELECTION.
  /ui2/cl_json=>deserialize( EXPORTING json = '[ { "MANDT": "000" }, 
    { "MANDT": "001" }, { "MANDT": "002" } ]' CHANGING data = g_tab_t000 ).
  BREAK-POINT.
Run Code Online (Sandbox Code Playgroud)