节点J.S.在json对象中打印特定属性?

时间:2017-07-21 22:57:18

标签: javascript json node.js superagent

好的,所以我试图在这个json对象中打印trackName:https://pastebin.com/raw/KfEDtRPY。但我似乎无法找到合适的属性。我尝试过: console.log(res.text.results[0].trackName); 但它只是给了我这个错误: TypeError: Cannot read property '0' of undefined 顺便说一下,为了得到那个json对象我做了console.log(res.text); 我似乎无法找到正确的方法来打印JUST trackName。 提前谢谢。

注意:如果有任何帮助,我会使用superagent。

3 个答案:

答案 0 :(得分:2)

typeof res.text是string,首先在JSON.parse(res.text)的帮助下解析它,然后访问它。

答案 1 :(得分:1)

这样做,试试这个:

var jsonString = Json.parse(res.text)
console.log(jsonString.results[0].trackName)

答案 2 :(得分:1)

  1. 您的JSON文件不完整(测试意外结束了JSON输入错误)。或者,另一种可能是您的代码超时,因此将回调的超时值增加到readfile(异步)(如果您正在使用它)
  2. 使用以下代码,它可以运行,经过测试。

        var chai = require('chai'),expect = chai.expect,fs=require('fs');describe('Verifying a JSON value', function () { it('checks if tackname of index 0 is not undefined', function () {
                            var data=fs.readFileSync('./test/trex.json');
                            var jsonValue=JSON.parse(data);
                            var x=jsonValue.results[0].trackName;
                            console.log("jsonvalue "+x);                        
                            expect(x).equals("2U (feat. Justin Bieber)");           
        });
    });
    

    Mocha test result