Json数组的输出值

Output value from Json Array

本文关键字:输出 数组 Json      更新时间:2023-09-26

我正在获得输出:[{"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);
});

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

编辑:

JSON.stringify返回一个字符串,而不是一个对象。因此,在这种情况下,"final"是一个包含与对象"results"中相同数据的字符串

要访问对象中的数据,您可以使用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((

你也可以使用一个循环,但这个清洁剂。

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

好吧,假设

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

然后:

var myref = myvar[0].ref;