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

Node J.S. Printing a specific property in a json object?

好的,所以我正在尝试在此 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。

typeof res.text为字符串,先借助JSON.parse(res.text)解析,然后访问

这样做,试试这个:

var jsonString = Json.parse(res.text)
console.log(jsonString.results[0].trackName)
  1. 您的 JSON 文件不完整(测试抛出了 JSON 输入错误的意外结束)。或者,另一种可能性是您的代码超时,因此请增加回调到 readfile (async) 的超时值(如果您正在使用它)

使用下面的代码,有效,经过测试。

    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)");           
    });
});