JSFiddle - React, Tailwind, and code Playground

JavaScript

var data = {
    country: {
        name: "name",
        code: 1
    },
    department: {},
    cars: ["bmw", "ferrari"],
    books: []
};

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

function removeFirstLevelEmptyPropertiesFromJSON(obj)
{
  var isArray = obj instanceof Array;
  for (var k in obj)
  {
      if (obj[k] instanceof Array)  
      {
          if(obj[k].length == 0)
              delete obj[k];
      }
      else
      {
          if(isEmpty(obj[k]))
              delete obj[k];
      }
  }
}
removeFirstLevelEmptyPropertiesFromJSON(data);

var modifiedData = JSON.stringify(data);
alert(modifiedData);