null / empty json如何检查它而不是输出?

时间:2009-02-08 02:02:59

标签: javascript json

我有一个json编码的数据集,我通过ajax检索。我正在尝试检索的一些数据点将返回null或为空。

但是,我不希望将null或empty显示给最终用户,或者传递给其他函数。

我现在正在做的是检查

    if(this.cityState!='null'){
            // do some stuff here
}

然而,对于每一行,我发现自己经历了多个if语句,而且效率似乎非常低。有更好的方法吗?

3 个答案:

答案 0 :(得分:17)

由于JSON只是一种数据格式,除非您明确检查它们,否则实际上无法知道哪些数据成员为空。您可以随时重构代码,使其更紧凑,更易于阅读,但如果您事先不知道哪些项将为空,哪些将包含数据,则必须明确检查每个项目。

虽然我不知道您的代码应该做什么,但这里有一个示例,说明如何重构它以使其更紧凑:

var data = { Name: "John Doe", Age: 25, Address: null, CityState: "Denver, CO" };
for (member in data) {
    if (data[member] != null)
        // Do work here
}

答案 1 :(得分:4)

我不完全确定你想要做什么......你说你不想把它们传递给其他功能所以我假设你要删除它们:

var data = {a:"!",b:"null", c:null, d:0, e:"", hasOwnProperty:"test"};

var y;
for (var x in data) {
    if ( Object.prototype.hasOwnProperty.call(data,x)) {
        y = data[x];
        if (y==="null" || y===null || y==="" || typeof y === "undefined") {
            delete data[x];
        }

    }
}

检查hasOwnProperty是为了确保它不是属性链中的某些属性。

答案 2 :(得分:2)

或者您可以使用

int data=0;
try{
   data=json.getInt("Data");
}catch(Exception e){
   data=anydefaultdata;
}