PSQL JSON 结果中的双引号问题

时间:2021-04-02 18:08:29

标签: arrays json postgresql

我有以下 SELECT 语句,它返回两次转义的双引号,我不知道如何只将它们转义一次或完全去掉双引号。由于它们,JSON 格式错误。我尝试过 REPLACE 并使用各种 PGSQL JSON 函数,但没有任何东西给我我需要的结果。可能有更好的方式来编写整个语句,但我对 PostgreSQL 及其所有功能还很陌生。

COPY (
SELECT
    json_build_object('var pdescr = ',(array_to_json(array_agg(json_build_object('ai_vsn_id', air13.ai_vsn_id, 'pde_text', progdesc.pde_text, 'pde_disp_ord', progdesc.pde_disp_ord)))))
FROM
    air13
LEFT JOIN
    progdesc
ON
    progdesc.pde_vsn_id = air13.ai_vsn_id
WHERE
    ((air13.ai_air_date >= now() - INTERVAL '2 days') AND (air13.ai_air_date <= (now() + INTERVAL '7 days'))))
TO 'pdescrtest.json';

这是一个结果示例,由于双 \s,它在第 3 行中断。

{"var pdescr = " : [
    {"ai_vsn_id" : 395617, "pde_text" : "and plant in the garden. It's the perfect present for America.        ", "pde_disp_ord" : 6},
    {"ai_vsn_id" : 328966, "pde_text" : "Artist Georgia O'Keeffe has been called the \\"Mother of American       ", "pde_disp_ord" : 1},
    {"ai_vsn_id" : 328966, "pde_text" : "Modernism,\\" well-known for her flowing, colorful works depicting      ", "pde_disp_ord" : 2},
    {"ai_vsn_id" : 328966, "pde_text" : "flowers and plants, dramatic cityscapes and Southwestern landscapes.  ", "pde_disp_ord" : 3},
    {"ai_vsn_id" : 328966, "pde_text" : "The half-hour documentary GEORGIA O'KEEFFE: A WOMAN ON PAPER          ", "pde_disp_ord" : 4},
]}

任何人都可以提供任何指导,我们将不胜感激。

0 个答案:

没有答案