在Jquery中,如何检查Json对象中的空值和重复值?

时间:2017-09-14 01:28:07

标签: javascript jquery json

var data = {
  "obj":[{
    "name": "John",
    "age": "10",
    "Alias": "Person",
    "where":[{"City1":"foo", "City2":"foo2"}]
  },{
    "name": "Mike",
    "age": "",
    "Alias": "Person",
    "where":[{"City1":"test1", "City2":"test2"}]
  }]
}

data.obj[0].Aliasdata.obj[1].Alias重复。

data.obj[1].age也是空的。

如果JSON对象中存在空值或重复值,则返回false。

如何检查空值和重复值?

1 个答案:

答案 0 :(得分:1)

你可以使用过滤器

  1. 首先检查空白年龄。
  2. 如果任何空的年龄,它将发送虚假警报。如果它发送虚假警报,则该项目将不在final
  3. 否则会尝试检查重复的Alias。如果临时列表中存在任何项目,则表示已经传递了一次。它将返回false
  4. 如果临时列表中不存在任何项目,它将在临时文件中推送该项目并返回true
  5. 如果final中的总项目不等于data,则表示json中的项目无效。
  6. 喜欢这个

    var data = {
      "obj": [{
        "name": "John",
        "age": "10",
        "Alias": "Person",
        "where": [{
          "City1": "foo",
          "City2": "foo2"
        }]
      }, {
        "name": "Mike",
        "age": "",
        "Alias": "Person",
        "where": [{
          "City1": "test1",
          "City2": "test2"
        }]
      }]
    }
    
    var temp = []
    var final = data.obj.filter((x, y) => {
      console.log(x)
      if (x.age.length == 0) {
        return false
      } else {
        if (temp.indexOf(x.Alias) > -1){
          return false
        }
        else {
           temp.push(x.Alias)
           return true
        }
      }
    })
    
    console.log(final.length == data.obj.length ? "Valid" : "Not valid JSON")
    

    DEMO