Json Array的输出值

时间:2016-09-22 15:28:19

标签: javascript arrays json

我收到了输出:[{"ref":"contact.html","score":0.7071067811865475}]

 $.getJSON( "index.json", function(content) {  
        idx = lunr.Index.load(content);
        var results = idx.search(variabletosearch);
        var final = JSON.stringify(results);
        console.log(final);
});

如何打印参考值?当我console.log(final[0].ref);时,我得到了未定义。

3 个答案:

答案 0 :(得分:1)

var a = [{"ref":"contact.html","score":0.7071067811865475}];

a[0].ref;

a[0]是数组中的第0个(或第一个)元素,它是对象文字{"ref":"contact.html","score":0.7071067811865475},您可以使用点表示法正常访问该对象。

扩大了一点:

var a = [{"ref":"contact.html","score":0.7071067811865475}];
var myObject = a[0];
console.log(myObject.ref);
//or with null checking
if (myObject) {
  console.log(myObject.ref ? myObject.ref : 'no value');
}

答案 1 :(得分:1)

编辑:

JSON.stringify返回一个字符串,而不是一个对象。所以在这种情况下,最终'是一个字符串,其中包含对象'结果'

中的相同数据

要从对象访问数据,您可以使用result [0] .ref,或者如果您想使用' final' (虽然你不需要),你可以这样做:

final = JSON.parse(final)
console.log(final[0].ref)

如果它只是数组中的一个对象,那么其他答案就足够了,但由于数组用于存储多个对象,您可以按如下方式执行此操作:

var arr = [
    {"ref": "object1", "score": "1"},
    {"ref": "object2", "score": "2"}
]

arr.map(function(object) {
    console.log(object.ref)
})

JSFiddle使用警报而不是console.log()

您也可以使用循环,但这个更清洁。

答案 2 :(得分:0)

好吧,假设

var myvar = [{"ref":"contact.html","score":0.7071067811865475}];

然后:

var myref = myvar[0].ref;