无法删除具有空值的JSON项

时间:2015-08-26 07:44:15

标签: javascript json parsing

我正在从API中接收数据,其中有2个title和2个author属性(例如,将其称为title_1title_2)。我只需要一个标题或作者保存到我的数据库,因此如果title_1title_2都为空,我认为某个项目无效。

所以这就是问题所在,它似乎适用于作者,但我仍然总是保留一个项目,尽管title_1nulltitle_2"" }。我不确定为什么,但我想我的解析值可能存在问题?

所以这里是我提到的项目的JSON:

"title_1": null,
"title_2": "",

正如我所说,它成功地将作者与同样的问题拼接在一起。首先,我获取数据(以字符串形式接收)并解析它:

request.get(apiUrl, function(error, response, body) {
      if(!error && response.statusCode == 200) {
        var data = JSON.parse(body);
        callback(error, data.items);
      }
    });

然后我稍后打电话给removeInvalidItems(data);

function removeInvalidItems(data) {
  for (var i = 0; i < data.length; i++) {
    if ( !isValid(data[i].title) && !isValid(data[i].title_2) ) {
      data.splice(i, 1);
    }
    if ( !isValid(data[i].author) && !isValid(data[i].author_2) ) {
      data.splice(i, 1);
    }
  }
  return data;
};

正在检查这样的有效性:

function isValid(attr) {
  if (attr === null || attr === '') {
    return false;
  } else return true;
};

有人能想到这个项目仍然继续通过此isValid()函数有效的原因吗?

0 个答案:

没有答案