Postgres gibt beim Erstellen eines JSON-Exports falsche Anführungszeichen zurück. Beachten Sie die Anführungszeichen in das unten stehende Update ...Postgres row_to_json erzeugt ungültiges JSON mit doppelten Escape-Anführungszeichen
UPDATE models SET column='"hello"' WHERE id=1;
COPY (SELECT row_to_json(models)
FROM (SELECT column FROM shaders WHERE id=1) shaders)
TO '/output.json';
Der Inhalt output.json:
{"column":"\\"hello\\""}
Sie können sehen, dass die Zitate nicht richtig entkommen sind und es schafft ungültige JSON. Es sollte sein:
{"column":"\"hello\""}
Wie kann ich diesen Postgres Fehler oder Arbeit um das Problem beheben?
Ich reichte dies als Fehler # 13160 zu http://www.postgresql.org/list/pgsql-bugs/ (ausstehende Moderation) –
Es ist kein Fehler. Mit 'COPY' können keine einzelnen Ergebnisse in eine Datei ausgegeben werden. Es gibt ausgeblendete zeilenorientierte Daten aus. Es klingt, als würdest du stattdessen 'psql's' \ o' Option haben. –