如何在 postgresql 中将 json 数组转换为行

Die*_*des 6 sql arrays postgresql json

我正在尝试转换此结果,其中我有一个 JSON 类型列,该列来自 sql 查询

\n\n
{\n  "rows": [\n    {\n      "columns": {\n        "jseq": 1,\n        "Nombre": "0000956_LANZADOR",\n        "rutaEsquema": "AXIS",\n        "TipoDeComponente": "SQL",\n        "value": 0,\n        "detalleDelComponente": "Soluci\xc3\xb3n incidente 956"\n      }\n    },\n    {\n      "columns": {\n        "jseq": 2,\n        "Nombre": "0000956_02_Borrar_Mandatos.sql",\n        "rutaEsquema": "AXIS",\n        "TipoDeComponente": "SQL",\n        "value": 1,\n        "detalleDelComponente": "Brecha 67"\n      }\n    }\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

对此

\n\n
Nombre                     | rutaEsquema | TipoDeComponente | detalleDelComponente\n---------------------------+-------------+------------------+-----------------------\n0000956_LANZADOR           | AXIS        | SQL              | Soluci\xc3\xb3n incidente 956\n0000956_02_Borrar_Mandatos | AXIS        | SQL              | Brecha 67\n
Run Code Online (Sandbox Code Playgroud)\n\n

我正在使用 Postgresql

\n

Ber*_*rgi 4

json_to_recordJSON 处理函数json_to_recordset正是这样做的。在你的情况下:

SELECT cols.*
FROM json_to_recordset(yourJsonValue -> 'rows') AS rows(columns JSON),
     json_to_record(columns) AS cols(
       "Nombre" TEXT,
       "rutaEsquema" TEXT,
       "TipoDeComponente" TEXT,
       "detalleDelComponente" TEXT)
Run Code Online (Sandbox Code Playgroud)

在线演示