是否有可能在node.js中将其解析为JSON?

时间:2015-08-09 21:44:42

标签: javascript json node.js

所以我试图解析一个小的API,它会返回一些无效的JSON。我一直试图做这样的事情:

    var request = require('request'),
        url = 'urlhere';
    request({
        url: url
    }, function(error, response, body) {
       if (!error && response.statusCode === 200) {
           var jsonData = JSON.parse(body),
               jsonArray = []; // For jsonArray.push later
           for (var i = 0; i < jsonData.length; i++)
               console.log(jsonData[i].name);
           jsonData.length = 0; // Clear array.
       }
    });

但是我尝试阅读的服务与返回语句类似:

{
    people: [
        {
            name: "test"
        },
        {
            name: "test2"
        },
        {
            name: "test3"
        },
        {
            name: "test4"
        }
    ]
}

我一直试图让它工作,但当我这样做时,只返回[object Object]。当我深入研究时,我发现这甚至不是有效的JSON,或者网站和客户认为它是无效的JSON。有没有办法在node.js中解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您无法修复不正确的JSON,我认为最简单的方法是尝试通过使用正则表达式为密钥添加缺少的引号来修复它:

搜索:/(['"])?([a-zA-Z0-9_]+)(['"])?:/g

替换:"$&":