首页 > 解决方案 > JSON.parse 处的 JSON 输入意外结束()

问题描述

下面是用我的 get 方法编写的代码。我不知道为什么我会遇到这个问题。如何解决,请提供一些代码。

app.get("/",function(req,res)
{
    const url = "https://jsonplaceholder.typicode.com/users"
    https.get(url,function(response)
    {
        console.log(response.statusCode);

        response.on("data",function(data)
        {
            const apidata = JSON.parse(data)
            console.log(apidata)
        })
    })

})

标签: javascriptnode.jsjsonexpress

解决方案


您正面临这个问题,因为response.on('data', ...它是一个流,这意味着您可能还没有完整的 json 对象,这也意味着您正在尝试解析部分响应。您应该收集 json 块,on('data', ...然后在响应完成时解析 json。像这样的东西:

https.get(url, function(response){
  console.log(response.statusCode);
  let rawData = ''
  response.on("data", function(data){
    rawData = `${rawData}${data}`
  })
  response.on("end", function() {
    const apidata = JSON.parse(rawData)
    console.log(apidata)
  })
})

推荐阅读