查询特定条件的json数据

时间:2017-05-23 19:59:47

标签: json node.js

查询json数据的推荐方法是什么?例如我的数据看起来像

 var meetings = 
           {
             "meeting" : [
                 {
                      "subject" : "Server upgrade for data center C3W",
                      "attendees" : [
                          {
                            "name" : "Ron Edward",
                            "title": "CEO",
                            "company": "Data Solutions",
                            "confirmed" : "yes"
                          },
                          {
                            "name" : "John Steward",
                            "title": "Procurement Officer",
                            "company": "Data Solutions",
                            "confirmed" : "yes"
                          },
                          {
                            "name" : "Name 1",
                            "title": "Senior Director",
                            "company": "C1 Corporation",
                            "confirmed" : "no"
                          }

                        ]
                 }
              ]
           }
       ;

我希望查询是否有任何参与者确认没有值

1 个答案:

答案 0 :(得分:1)

您的问题不清楚是否要检查是否有任何未确认的与会者,或者您想查找哪些与会者未确认?在这两种情况下,代码几乎相同,只有很小的区别: -

通用代码

[Invoice [frequency=Quarterly, amount=100], Invoice [frequency=Annually, amount=100]]

说明:如果具有已确认属性的对象if设置为no

,则此函数返回true

案例I:如果您只想查找是否有人尚未确认

function checkConfirmation(person){
    return   person.confirmed == "no"

}

解释:" some()"是一个Javascript数组方法,它检查数组的任何成员是否满足函数的条件并返回布尔值。在你的情况下,当一位与会者尚未确认时,这将是真的。

案例II:如果您只想找到所有人都没有确认的。

var result  =  meetings["meeting"][0]["attendees"].some(checkConfirmation);
  console.log(result);    //  true

解释:"过滤器()"是一个Javascript数组方法,它返回另一个数组{原始的子数组},这些成员满足函数的条件。在你的情况下,它将有一个成员。

关于这些方法的更多信息: - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some