Proper way to handle ajax request
Simply print your json stuff in your page callback instead of returning it, then Drupal isn't going to add anything around it. In fact, there is a helper function for that, called drupal_json_output(), see user_autocomplete() for an example of that.

That's the official way to deal with this currently, Drupal 8 will hopefully add proper handling for different types of content directly into the routing system (which will be heavily reworked and built upon Simfony2 components).