JSON request handling