我一直在使用 http.get() 调用 SounbdCloud API 方法来接收我想要传递给浏览器的 JSON 对象。我可以确认我收到的数据是一个对象,因为我对数据调用的 typeof() 方法打印出它是一个对象。
var getTracks = http.get("http://api.soundcloud.com/tracks.json?q="+query+"&client_id=CLIENT_ID", function(tracks) {
tracks.on('data', function (chunk) {
console.log(typeof(chunk)); // where I determine that I receive an object
res.send(chunk);
});
//console.log(tracks.data);
}).on("error", function(e){
console.log("Got error: "+e);
});
但是当我检查在浏览器中发出的 AJAX 请求中收到的数据时,我发现收到的数据具有 String 类型(同样,我通过调用 typeof() 知道这一点)
$('#search').click(function(e){
e.preventDefault();
var q = $("#query").val();
$.ajax({
url: '/search',
type: 'POST',
data: {
"query": q
},
success: function(data){
alert(typeof(data));
alert(data);
},
error: function(xhr, textStatus, err){
alert(err);
}
})
});
我很感激您的帮助,因为我不知道问题出在哪里,或者我是否在错误的地方寻找答案(也许这与我使用 SoundCloud 的 HTTP API 有关)
最佳答案
JSON 是一个字符串。我假设您需要一个代表 JSON 字符串的对象。
只需使用以下方法即可。
var obj = JSON.parse(data);
另一个例子是:
var jsonStr = '{"name":"joe","age":"22","isRobot":"false"}';
var jsonObj = JSON.parse(jsonStr);
jsonObj.name //joe
jsonObj.age // 22
关于javascript - Node.js 和 Express - 将 JSON 对象从 SoundCloud API 发送到前端使其成为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649157/