NULL / пустой JSON, как проверить это, а не вывод? - PullRequest
8 голосов
/ 08 февраля 2009

У меня есть набор данных в кодировке json, который я получаю через ajax. Некоторые из точек данных, которые я пытаюсь получить, вернутся к нам нулевыми или пустыми.

Однако я не хочу, чтобы эти нулевые или пустые отображались конечному пользователю или передавались другим функциям.

То, что я сейчас делаю, проверяет

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

Тем не менее, для каждой строки я обнаруживаю, что прохожу несколько операторов if, и это кажется очень неэффективным. Есть ли лучший способ сделать это?

Ответы [ 3 ]

17 голосов
/ 08 февраля 2009

Поскольку JSON - это просто формат данных, на самом деле нет способа узнать, какой из ваших элементов данных будет нулевым, если вы явно не проверите их. Вы всегда можете реорганизовать свой код, чтобы сделать его более компактным и легким для чтения, но вам придется явно проверять каждый элемент, если вы заранее не знаете, какой из них будет нулевым, а какой будет содержать данные.

Хотя я не знаю, что должен делать ваш код, вот пример того, как вы можете изменить его код, чтобы сделать его более компактным:

var data = { Name: "John Doe", Age: 25, Address: null, CityState: "Denver, CO" };
for (member in data) {
    if (data[member] != null)
        // Do work here
}
4 голосов
/ 08 февраля 2009

Я не совсем уверен в том, что вы хотите сделать ... вы говорите, что не хотите передавать их другим функциям, поэтому я предполагаю, что вы хотите удалить их:

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 голосов
/ 14 января 2018

Или вы можете просто использовать

int data=0;
try{
   data=json.getInt("Data");
}catch(Exception e){
   data=anydefaultdata;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...