在使用 node-fetch 解析为 JSON 之前替换原始数据中的字符
Replace character in raw data before parsing to JSON using node-fetch
我正在尝试从网站获取原始数据并将其转换为 JSON,但问题是数据使用单引号而不是双引号,这会出错
UnhandledPromiseRejectionWarning: FetchError: invalid json response body at (WEBSITE_LINK) reason: Unexpected token ' in JSON at position 1
如果我在浏览器中打开页面,数据如下所示:
{'test': True, 'number': 0}
如何使用以下代码将单引号转换为双引号,然后再将其解析为 JSON?
let url = `WEBSITE_LINK`;
let settings = { method: "Get" };
fetch(url, settings)
.then(res => res.json())
.then((json) => {
console.log(json.test)
console.log(json.number)
});
您可以使用 js String replace 方法手动解析返回字符串。
let url = `WEBSITE_LINK`;
let settings = { method: "Get" };
fetch(url, settings)
.then(res => res.text())
.then((text) => {
const json = JSON.parse(text.replace(/'/g, '"'));
console.log(json.test);
console.log(json.number);
});
使用 String 构造函数将响应转换为字符串,然后应用替换方法。
let url = `WEBSITE_LINK`;
let settings = {
method: "Get"
};
fetch(url, settings)
.then(res => {
const text = String(res.text()).replace(/'/g, '"');
return JSON.parse(text);
})
.then((json) => {
console.log(json.test)
console.log(json.number)
});
我正在尝试从网站获取原始数据并将其转换为 JSON,但问题是数据使用单引号而不是双引号,这会出错
UnhandledPromiseRejectionWarning: FetchError: invalid json response body at (WEBSITE_LINK) reason: Unexpected token ' in JSON at position 1
如果我在浏览器中打开页面,数据如下所示:
{'test': True, 'number': 0}
如何使用以下代码将单引号转换为双引号,然后再将其解析为 JSON?
let url = `WEBSITE_LINK`;
let settings = { method: "Get" };
fetch(url, settings)
.then(res => res.json())
.then((json) => {
console.log(json.test)
console.log(json.number)
});
您可以使用 js String replace 方法手动解析返回字符串。
let url = `WEBSITE_LINK`;
let settings = { method: "Get" };
fetch(url, settings)
.then(res => res.text())
.then((text) => {
const json = JSON.parse(text.replace(/'/g, '"'));
console.log(json.test);
console.log(json.number);
});
使用 String 构造函数将响应转换为字符串,然后应用替换方法。
let url = `WEBSITE_LINK`;
let settings = {
method: "Get"
};
fetch(url, settings)
.then(res => {
const text = String(res.text()).replace(/'/g, '"');
return JSON.parse(text);
})
.then((json) => {
console.log(json.test)
console.log(json.number)
});