I don't understand $resource enough to use it, so I use $http instead. Sorry, just a failing of my brain somewhere :-P . Anyway, you can pass your data as JSON like this using $http:
var myPost = $http({ method: "POST", url: "yourUrl", data: { "projectID":"7","name":"blah","isFavorite":"false" } });
myPost.then(function(data,status,headers,config){//success things},function(data,status,headers,config){//error things});
You can also pass a string that is formatted like JSON like this:
data: '{ "projectID":"@projectID","name":"@name","isFavorite":"@isFavorite" }'
The main thing about doing it this way is that you have to have the JSON parts enclosed in double quotes for it to be valid JSON. I don't know if your server-side API is configured to check for valid JSON, but I pass mine like this just to be safe. Pawel or one of the other more advanced users could probably help you more with using $resource, but this is how I get things to work.