如何检查NodeJS中的JSON是否为空?

我有一个函数,检查请求是否有任何疑问,并做了不同的行动基于此。 目前,我有if(query)做这个别的东西。 但是,似乎没有查询数据时,我最终得到一个{} JSON对象。 因此,我需要replaceif(query) if(query.isEmpty())或类似的东西。 任何人都可以解释我怎么可以在NodeJS做这个? V8 JSON对象是否有这种function?

您可以使用以下任一function:

 // This should work in node.js and other ES5 compliant implementations. function isEmptyObject(obj) { return !Object.keys(obj).length; } // This should work both there and elsewhere. function isEmptyObject(obj) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { return false; } } return true; } 

用法示例:

 if (isEmptyObject(query)) { // There are no queries. } else { // There is at least one query, // or at least the query object is not empty. } 

你可以使用这个:

 var isEmpty = function(obj) { return Object.keys(obj).length === 0; } 

或这个:

 function isEmpty(obj) { return !Object.keys(obj).length > 0; } 

你也可以使用这个:

 function isEmpty(obj) { for(var prop in obj) { if(obj.hasOwnProperty(prop)) return false; } return true; } 

如果使用下划线或jQuery ,则可以使用它们的isEmptyisEmptyObject调用。

在游戏的后期,但我正在使用另一种我更喜欢的方式,即使它不是“正确的”解决scheme。

 JSON.stringify(obj) === '{}' 

我知道这种方法可能会得到不好的评论,因为我假设空对象的string表示{} (如果它是{ } ) – 但是我觉得没有函数这种方式更容易,它似乎对我很好。