如何使用javascript访问JSON数据库

如何使用javascript访问JSON数据库,javascript,json,Javascript,Json,如何找到值为“Anna”的“firstname”,并使用JavaScript在末尾显示她的“lastname”?这只是一个虚拟的例子,让我了解它是如何工作的 var员工=[ { “名字”:“约翰”, “姓氏”:“能源部” }, { “名字”:“安娜”, “姓氏”:“史密斯” }, { “名字”:“彼得”, “姓氏”:“琼斯” } ]; document.getElementById(“demo”).innerHTML= 雇员姓名 您必须迭代并检查该值,然后执行您想要的操作: for (var

如何找到值为“Anna”的“firstname”,并使用JavaScript在末尾显示她的“lastname”?这只是一个虚拟的例子,让我了解它是如何工作的

var员工=[
{
“名字”:“约翰”,
“姓氏”:“能源部”
}, 
{
“名字”:“安娜”,
“姓氏”:“史密斯”
},
{
“名字”:“彼得”,
“姓氏”:“琼斯”
}
];
document.getElementById(“demo”).innerHTML=
雇员姓名

您必须迭代并检查该值,然后执行您想要的操作:

for (var i = 0; i < employees.length; i++) {
    if (employees[i].firstName == "Anna") {
        document.getElementById("demo").innerHTML = employees[i].lastName;
        break;
    }
}
您需要在对象中循环并找到要查找的键的值。
我做过类似的事情

var quality = function(obj) {
  if (obj.quality === 'source') {
    return obj;
  }
};

context.download.filter(quality)[0].link;

此筛选器应返回与新数组中的筛选器匹配的每个对象。

对于更复杂的查询,您还可以使用JSON查询语言,例如(惊奇!)


遍历第一个数组并使用条件查找值“anna”,然后像
employees[i].lastName那样访问它。下面是一个工作示例

Html

var员工=[{
“名字”:“约翰”,
“姓氏”:“能源部”
}, {
“名字”:“安娜”,
“姓氏”:“史密斯”
}, {
“名字”:“彼得”,
“姓氏”:“琼斯”
}];
用于(员工中的var i){
if(雇员[i].firstName=='Anna'){
document.getElementById(“demo”).innerHTML=employees[i].lastName;
}
}


对于某些较旧的浏览器,无法获取对象长度。但是如果你有一个数组而不是一个对象,我建议你使用这个方法。但是向后循环而不是向前循环。@RichardGrant——这是一个数组——上面的代码从不使用对象长度。为什么要向后循环而不是向前循环呢?哎呀,我并没有把代码看得太多。你的代码可以工作。我道歉。当你向前循环时,你的循环需要不断地检查项目的长度,这会导致循环运行得更慢。关于这一点有很多文档。@RichardGrant--Idk速度要慢得多,性能增益非常小-不需要这么快优化。太好了!谢谢。最后一个问题,如果我有一个以上的“Anna”,如何在一行中显示它们的所有“LastName”?不要在数组中使用
for
语法,这意味着迭代对象属性。没有理由相信这种类型的for循环仅用于数组。唯一的区别是for循环将捕获项目原型用于迭代对象属性。
var e = [
    {
    "firstName":"John",
    "lastName":"Doe"
    }, 
    {
    "firstName":"Anna",
    "lastName":"Smith"
    },
    {
    "firstName":"Peter",
    "lastName":"Jones"
    }
];

for (var i = e.length - 1; i >= 0; i--) {
    if (e[i].firstName == "Anna") {
        console.log(e[key]['firstName'] + ', ' + e[key]['lastName']);
        break;
    }
};
var quality = function(obj) {
  if (obj.quality === 'source') {
    return obj;
  }
};

context.download.filter(quality)[0].link;
var jsonQuery = require('json-query')

var data = {
  employees: [
    {firstName: 'John', lastName: 'Doe'},
    {firstName: 'Anna', lastName: 'Smith'},
    {firstName: 'Peter', lastName: 'Jones'}
  ]
}

jsonQuery('employees[firstName=Anna].lastName', {
  data: data
})