Automatically handle JSON input

If the JSON data is a dictionary, then it is automatically passed into
the methods, just like URL parameters, GET data and POST data.
Merge branch 'json-post'