In Ruby/Rails JSON gets deserialized into a standard Ruby Hash(really a Map) and can be processed in the same manner as a non-JSON HTTP request with a query string, as that also parses the query string into a standard Ruby Hash.
I find having a standard format of data(a Ruby Hash) presented to the entry point of your application makes it easier to reason through stuff like this, you don't need to worry about what kind of format the client wants to use so long as your HTTP request engine can parse the data into your standard format. This works well for TXT/HTML, JSON, XML and even CSV and makes a lot of sense in the context of Ruby on Rails since they provide all the parsing engines for the different content-types of a request.