diff --git a/packages/server/src/api/controllers/view/exporters.ts b/packages/server/src/api/controllers/view/exporters.ts index 76e5f865a3..94487e4dd1 100644 --- a/packages/server/src/api/controllers/view/exporters.ts +++ b/packages/server/src/api/controllers/view/exporters.ts @@ -26,7 +26,7 @@ export function csv( headers.map(header => { const val = row[header] if (typeof val === "object" && !(val instanceof Date)) { - return `"${JSON.stringify(val).replace(/"/g, "'")}"` + return `"${escapeCsvString(JSON.stringify(val))}"` } if (val !== undefined) { return `"${escapeCsvString(val.toString())}"` diff --git a/packages/server/src/utilities/schema.ts b/packages/server/src/utilities/schema.ts index b13999c842..eca74e32b7 100644 --- a/packages/server/src/utilities/schema.ts +++ b/packages/server/src/utilities/schema.ts @@ -270,20 +270,6 @@ function parseJsonExport(value: any) { if (typeof value !== "string") { return value } - try { - const parsed = JSON.parse(value) - - return parsed as T - } catch (e: any) { - if ( - e.message.startsWith("Expected property name or '}' in JSON at position ") - ) { - // This was probably converted as CSV and it has single quotes instead of double ones - const parsed = JSON.parse(value.replace(/'/g, '"')) - return parsed as T - } - - // It is no a valid JSON - throw e - } + const parsed = JSON.parse(value) + return parsed as T }