Вложенный объект JSON в PLSQL - PullRequest
0 голосов
/ 29 мая 2020

Как я могу написать код pl sql для примера ниже

"charts":
    [
        {
            "name":"CHART_1",
            "type":"bar",
            "data":
            [
                {
                  "id": 0,
                  "series": "Initial",
                  "group": "Deals",
                  "value":42
                },
                {
                  "id": 1,
                  "series": "Qualification",
                  "group": "Deals",
                  "value":55
                },
            ]
        }
    ]

1 Ответ

0 голосов
/ 10 августа 2020
declare
  vjson    pljson;
  vjinner  pljson;
  vjinner1 pljson;
  vjinner2 pljson;
  vjlist   pljson_list := pljson_list();
begin

  vjinner := pljson();
  vjinner.put('id', 0);
  vjinner.put('series', 1);
  vjinner.put('group', 2);
  vjinner.put('value', 3);

  vjlist.append(vjinner);

  vjinner1 := pljson();
  vjinner1.put('id', 0);
  vjinner1.put('series', 1);
  vjinner1.put('group', 2);
  vjinner1.put('value', 3);

  vjlist.append(vjinner1);

  vjinner2 := pljson();
  vjinner2.put('name', 'chart_1');
  vjinner2.put('type', 'bar');
  vjinner2.put('data', vjlist);

  vjson := pljson();

  vjson.put('charts', vjinner2);

  dbms_output.put_line(pljson_printer.pretty_print(obj => vjson, spaces => true));

end;

результат:

{   "charts" : {
    "name" : "chart_1",
    "type" : "bar",
    "data" : [{
      "id" : 0,
      "series" : 1,
      "group" : 2,
      "value" : 3
    }, {
      "id" : 0,
      "series" : 1,
      "group" : 2,
      "value" : 3
    }]   } }

перед установкой: https://github.com/pljson/pljson и попробуйте.

...