I'm not really sure where the idea that JSON APIs are hard to test came from?
They're actually really simple to test because the returned data is in a machine-readable format - JSON. Simply parse the JSON into a data structure that your language understands (hash, array?), and make assertions about the content. The end.
I recommend using Hashie::Mash[1] and turn all those hashes into objects, just like those you get when you parse the json in Javascript. This is how ruby's twitter[2] client handles json data.
They're actually really simple to test because the returned data is in a machine-readable format - JSON. Simply parse the JSON into a data structure that your language understands (hash, array?), and make assertions about the content. The end.