diff --git a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js index e9acd1f5c..b6b8d751d 100644 --- a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js +++ b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js @@ -20,14 +20,14 @@ const formatResponse = (data, mode, filter) => { } if (data === null) { - return data; + return 'null'; } if (mode.includes('json')) { let isValidJSON = false; try { - isValidJSON = typeof JSON.parse(JSON.stringify(data)) === 'object'; + isValidJSON = typeof JSON.parse(JSON.stringify(data)) === 'object' } catch (error) { console.log('Error parsing JSON: ', error.message); } diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 9e37c8289..84f49d07b 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -365,11 +365,15 @@ const parseDataFromResponse = (response, disableParsingResponseJson = false) => try { // Filter out ZWNBSP character // https://gist.github.com/antic183/619f42b559b78028d1fe9e7ae8a1352d + + // If the response is a string and starts and ends with double quotes, it's a stringified JSON and should not be parsed data = data.replace(/^\uFEFF/, ''); - if (!disableParsingResponseJson) { + if ( !disableParsingResponseJson && ! (typeof data === 'string' && data.startsWith("\"") && data.endsWith("\""))) { data = JSON.parse(data); } - } catch { } + } catch { + console.log('Failed to parse response data as JSON'); + } return { data, dataBuffer }; };