如何使用javascript访问JSON数据库

时间:2015-08-19 14:43:05

标签: javascript json

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

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

document.getElementById("demo").innerHTML =
employees.firstName;
<p id="demo"></p>

5 个答案:

答案 0 :(得分:1)

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

for (var i = 0; i < employees.length; i++) {
    if (employees[i].firstName == "Anna") {
        document.getElementById("demo").innerHTML = employees[i].lastName;
        break;
    }
}

要显示超过1个Anna - 我在阵列上使用filter,然后join

var lastNames = employees.filter(function(employee) {
    return employee.firstName == "Anna";
}).map(function(employee) {
    return employee.lastName;
}).join(",");

document.getElementById("demo").innerHTML = lastNames;

答案 1 :(得分:0)

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

您需要遍历Object并找到您要查找的键的值。 http://jsfiddle.net/mjs2avag/

答案 2 :(得分:0)

我做过类似的事情

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

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

迭代第一个数组并使用条件查找值&#39; anna&#39; ,然后像employees[i].lastName一样访问它。这是工作示例。 JSFIDDLE LINK

Html

&#13;
&#13;
 var employees = [{
            "firstName": "John",
                "lastName": "Doe"
        }, {
            "firstName": "Anna",
                "lastName": "Smith"
        }, {
            "firstName": "Peter",
                "lastName": "Jones"
        }];
        
       
       for (var i in employees) {
             if (employees[i].firstName == 'Anna') {
                
                document.getElementById("demo").innerHTML = employees[i].lastName;
        
            }
        
        
        
        }
&#13;
 <h3 id="demo"></h3> <!--This one will print smith Anna's lastname -->


    
&#13;
&#13;
&#13;