我正在调用一个返回内容类型为text / html charset = UTF-8的API。当我记录它时,结果看起来与json完全一样。但是当我记录typeof时,它说它是一个字符串。当我尝试访问它的属性时,我得到一个未定义的值。
首先,我尝试将其转换为JSON:
const requestData = function(pageNumber){
返回新的承诺((resolve,reject)=> {
const url = http://www.website.com/...
;
request(url, (error, response, body) => {
if (error) return reject(error)
if (response.statusCode !== 200) return reject(response)
console.log('Body: ', JSON.parse(body))
resolve(body)
})
}) }
这会抛出一个错误:
SyntaxError: Unexpected token m in JSON at position 1
我还试图在解析之前逃脱身体:
fixedstring = decodeURIComponent(escape(body))
console.log('keys: ', JSON.parse(fixedstring))
我得到同样的错误。
如上所述,当我记录正文时,它看起来与JSON相同:
...
console.log('body: ', body);
...
// Result printed to console:
body: {metadata:{ count:"1200", totalpages:400}, data:[{
"city" : "Clearwater",
"state" : "FL",
"zip" : "33760",
},{
...
如何将此转换为JSON?