diff --git a/packages/bruno-cli/src/utils/common.js b/packages/bruno-cli/src/utils/common.js index 2505225f..95ac44e6 100644 --- a/packages/bruno-cli/src/utils/common.js +++ b/packages/bruno-cli/src/utils/common.js @@ -38,10 +38,14 @@ const parseDataFromResponse = (response, disableParsingResponseJson = false) => // Filter out ZWNBSP character // https://gist.github.com/antic183/619f42b559b78028d1fe9e7ae8a1352d data = data.replace(/^\uFEFF/, ''); - if (!disableParsingResponseJson) { + + // If the response is a string and starts and ends with double quotes, it's a stringified JSON and should not be parsed + 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 }; }; diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 84f49d07..e8e0b003 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -365,9 +365,9 @@ const parseDataFromResponse = (response, disableParsingResponseJson = false) => try { // Filter out ZWNBSP character // https://gist.github.com/antic183/619f42b559b78028d1fe9e7ae8a1352d + data = data.replace(/^\uFEFF/, ''); // 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 && ! (typeof data === 'string' && data.startsWith("\"") && data.endsWith("\""))) { data = JSON.parse(data); }