解析 JSON 对象以在 Apex 项目 select 列表中使用

Parse JSON object to use in Apex item select list

我正在尝试将 JSON 对象解析为 APEX select 列表。有多种方法可以解析 JSON 对象,但我还没有遇到或想出一种方法来解析 JSON 对象并将其用作 Apex 应用程序中的 select 列表。大多数问题都围绕着从 Apex 数据生成 JSON。任何帮助,将不胜感激。谢谢!

我要解析的数据(更简单的例子)如下:

    {
  "verumModelObjectName": "Address",
  "verumObjectList": [
    {
      "locationID": "20005",
      "country": "ARE"
    },
    {
      "locationID": "31083",
      "country": "ARE"
    },
    {
      "locationID": "31118",
      "country": "ARE"
    },
    {
      "locationID": "32185",
      "country": "ARE"
    },
    {
      "locationID": "32138",
      "country": "ARE"
    },
    {
      "locationID": "32070",
      "country": "ARE"
    },
    {
      "locationID": "32094",
      "country": "ARE"
    },
    {
      "locationID": "20006",
      "country": "ARG"
    },
    {
      "locationID": "32196",
      "country": "ARG"
    },
    {
      "locationID": "41057",
      "country": "ARG"
    },
    {
      "locationID": "31032",
      "country": "ARG"
    },
    {
      "locationID": "33212",
      "country": "ARG"
    },
    {
      "locationID": "3558",
      "country": "ARG"
    },
    {
      "locationID": "33126",
      "country": "ARG"
    },
    {
      "locationID": "31007",
      "country": "ARG"
    },
    {
      "locationID": "33127",
      "country": "ARG"
    },
    {
      "locationID": "31100",
      "country": "ASM"
    },
    {
      "locationID": "20008",
      "country": "AUS"
    },
    {
      "locationID": "20591",
      "country": "AUS"
    },
    {
      "locationID": "31125",
      "country": "AUS"
    }]
  "statusCode": 200
}

你有没有在 5.0 中检查 apex_json 包 https://docs.oracle.com/cd/E59726_01/doc.50/e39149/apex_json.htm#AEAPI29640

您可以使用此包解析您的数据 然后对于 select 列表,您应该创建一个动态 select 列表,其中包含 d 显示和 r return 值,如下所示。它应该工作

 select col1 d, col2 r
from xmltable (
        '/json/verumObjectList/row'
        passing apex_json.to_xmltype('

    {
  "verumModelObjectName": "Address",
  "verumObjectList": [
    {
      "locationID": "20005",
      "country": "ARE"
    },
    {
      "locationID": "31083",
      "country": "ARE"
    },
    {
      "locationID": "31118",
      "country": "ARE"
    },
    {
      "locationID": "32185",
      "country": "ARE"
    },
    {
      "locationID": "32138",
      "country": "ARE"
    },
    {
      "locationID": "32070",
      "country": "ARE"
    },
    {
      "locationID": "32094",
      "country": "ARE"
    },
    {
      "locationID": "20006",
      "country": "ARG"
    },
    {
      "locationID": "32196",
      "country": "ARG"
    },
    {
      "locationID": "41057",
      "country": "ARG"
    },
    {
      "locationID": "31032",
      "country": "ARG"
    },
    {
      "locationID": "33212",
      "country": "ARG"
    },
    {
      "locationID": "3558",
      "country": "ARG"
    },
    {
      "locationID": "33126",
      "country": "ARG"
    },
    {
      "locationID": "31007",
      "country": "ARG"
    },
    {
      "locationID": "33127",
      "country": "ARG"
    },
    {
      "locationID": "31100",
      "country": "ASM"
    },
    {
      "locationID": "20008",
      "country": "AUS"
    },
    {
      "locationID": "20591",
      "country": "AUS"
    },
    {
      "locationID": "31125",
      "country": "AUS"
    }],
  "statusCode": 200
}


')
        columns
           col1 number path '/row/locationID',
           col2 varchar2(5) path '/row/country' );