簡體   English   中英

在node.js中解析JSON會給出錯誤

[英]Parsing JSON in node.js gives an Error

我的Node.js應用程序使用GET方法從Python后端讀取包含JSON數據的字符串。 有時,當我使用JSON.parse()並在成功后刷新頁面時,它給出了Unexpected token ,錯誤。

[
      {
       "postid":"c4jgud85mhs658sg4hn94jmd75s67w8r",
       "email":"someone@gmail.com",
       "post":"hello world",
       "comment":[]
      },
      {
       "postid":"c4jgud85mhs658sg4hn94jmd75s67w8r",
       "email":"someone@gmail.com",
       "post":"hello world",
       "comment":[]
      }
]

通過console.log JSON對象,我能夠驗證它給出錯誤時僅部分打印對象(這意味着僅傳遞了對象的一部分),例如:

4hn94jmd75s67w8r",
       "email":"someone@gmail.com",
       "post":"hello world",
       "comment":[]
      }
]

要么

[
      {
       "postid":"c4jgud85mhs658sg

在node.js中,我只使用

var data = JSON.parse(resJSON); //resJSON is the variable containing the JSON

如果它成功“ 有時 ”,我懷疑您是在'data'到達時解析響應,例如:

http.get('...', function (res) {
    res.on('data', function (data) {
        console.log(JSON.parse(data.toString()));
    });
});

如果一次發送所有響應,這將起作用。 但是,它也可以分為多個塊,這些塊將通過多個'data'事件接收。

要處理分塊的響應,您將需要將chunk s重新組合在一起,並在流到達'end'后將響應整體parse

http.get('...', function (res) {
    var body = '';

    res.on('data', function (chunk) {
        body += chunk.toString();
    });

    res.on('end', function () {
        console.log(JSON.parse(body));
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM