javascript - Node.js 和 Express - 将 JSON 对象从 SoundCloud API 发送到前端使其成为字符串

标签 javascript json node.js http express

我一直在使用 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/

相关文章:

javascript - Jquery Replacewith() div 被添加而不是被替换

javascript - 基于百分比的高度,动态转换为像素

json - 如何实现推送通知?

mysql - 如何在 ExpressJs 上加载静态图像

mysql - NodeJS AWS Lambda:连接丢失:服务器关闭了连接

javascript - 如何捕获输入到 Jquery 中的变量

javascript - 无法从React应用程序中的redux库导入商店

php - 在 PHP 中获取第二级 JSON 数据

javascript - JSONP 和 Google map 方向 API

node.js - 查询提示缺少 2dsphere-index,但它确实存在