我在使用ExpressJS的NodeJS程序中遇到了JSON.parse()的问题。 问题是,当我使用http.get获取外部json时,例如:
[ { "Name" : "Parachutes", "Artist" : "Coldplay"}, { "Name" : "Lost!", "Artist": "Coldplay" } ]
当我做JSON.parse(ResponseStr)时,我得到以下json
[ { "Name" : "Parachutes", "Artist" : "Coldplay"}, { "Name" : "Lost?", "Artist": "Coldplay" } ]
炭!正在转变成?当我这样做JSON.parse时,我想拥有与原始名称相同的输出,因为当我想在http.get('/ example.com/album/Lost?')中使用该名称时它会返回给我404错误。
这是我的代码:
function httpget(url,callback)
{
var str = "";
http.get(url, function(resp){
resp.on('data', function(chunk){
str += chunk;
});
resp.on('end', function(){
var obj = JSON2.parse(str);
callback(obj);
});
});
}
我已经使用resp.setEncoding('utf8');在我的代码中,问题出在JSON2.parse()中(与JSON.parse()相同),在此之前我可以执行console.log(str),输出将显示“Lost!”但是当我做JSON.parse()时输出就像这个“丢失?”