Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用节点提取解析为JSON之前,替换原始数据中的字符_Javascript_Node.js_Json_Node Fetch - Fatal编程技术网

Javascript 在使用节点提取解析为JSON之前,替换原始数据中的字符

Javascript 在使用节点提取解析为JSON之前,替换原始数据中的字符,javascript,node.js,json,node-fetch,Javascript,Node.js,Json,Node Fetch,我试图从网站获取原始数据并将其转换为JSON,但问题是数据使用单引号而不是双引号,这会产生错误 未经处理的PromisejectionWarning:FetchError:位于(网站链接)的json响应正文无效原因:json中位于位置1的意外标记 如果在浏览器中打开该页面,则数据如下所示: {'test':True,'number':0} 在使用以下代码将其解析为JSON之前,如何将单引号转换为双引号 let url = `WEBSITE_LINK`; let settings = { meth

我试图从网站获取原始数据并将其转换为JSON,但问题是数据使用单引号而不是双引号,这会产生错误

未经处理的PromisejectionWarning:FetchError:位于(网站链接)的json响应正文无效原因:json中位于位置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字符串方法手动解析返回的sting

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);
    });
使用字符串构造函数将响应转换为字符串,然后应用replace方法

let url=`WEBSITE\u LINK`;
让设置={
方法:“获取”
};
获取(url、设置)
。然后(res=>{
常量text=String(res.text()).replace(/'/g'”);
返回JSON.parse(text);
})
。然后((json)=>{
log(json.test)
log(json.number)

});
True也应替换为trueJSON无效的原因是-True这个词不是有效的javascript。请让后端提供程序向您提供True,小写。非常感谢您的回复!不幸的是,我在尝试执行该代码时收到一个错误:
(节点:18872)未经处理的PromisejectionWarning:TypeError:res.text(…).replace不是一个函数
-我尝试将其更改为res.text()。toString.replace但无效。是的,res.text返回一个承诺。您可以在另一个调用中进行解析,然后调用如何将“True”更改为“True”?您可以使用“toLowerCase()”方法。