Node.js:字符串太长时出现JSON.parse()错误

时间:2015-05-26 18:37:10

标签: javascript json node.js

我使用Node来请求API并解析返回的JSON。当我多次请求API时,节点崩溃并报告SyntaxError: Unexpected token错误。该错误位于JSON对象的字符串中的字符处。我发现字符串很长(用utf-8编码的60000多个字符)。这个问题是由太长的字符串引起的吗?它是如何发生的?

JSON字符串可以在这里看到: http://www.liyan93.com/mdnotes/JinquanquanIssues/errorData.json

2 个答案:

答案 0 :(得分:0)

在传输完整字符串之前,当另一端终止连接/切断时,我遇到过这种情况。也许这可能是原因?

提示:最新的Node在json解析错误时提供了一些更有用的错误,显示了字符串的一部分。您还可以使用jju作为解析器,它甚至可以提供更好的错误消息。

答案 1 :(得分:0)

https.get(url, (resp) => {
    let data = '';

    // A chunk of data has been recieved.
    resp.on('data', (chunk) => {
      data += chunk;
    });

    // The whole response has been received. Print out the result.
    resp.on('end', () => {
      const jsonDATA = JSON.parse(data).parse;

      var jsonText = jsonDATA.text;

      console.log(jsonText);
    });
});