Search code examples
javascriptjsonnode.jsv8

How can I check if a JSON is empty in NodeJS?


I have a function that checks to see whether or not a request has any queries, and does different actions based off that. Currently, I have if(query) do this else something else. However, it seems that when there is no query data, I end up with a {} JSON object. As such, I need to replace if(query) with if(query.isEmpty()) or something of that sort. Can anybody explain how I could go about doing this in NodeJS? Does the V8 JSON object have any functionality of this sort?


Solution

  • You can use either of these functions:

    // 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;
    }
    

    Example usage:

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