Committed patch by icylace (http://drupal.org/node/627384#comment-2257878):
1. Rewrote the JSON renderer. A preprocess step for making MIT Simile/Exhibit JSON has been added to streamline rendering. json_encode() will be used if it's available otherwise rendering will be done based on code from the drupal_to_js() Drupal core function. This allows for all data types including nested objects and arrays to be encoded properly. Preview rendering will be done using a more hacked version of the code from drupal_to_js() to allow for pretty-printing.
2. Reorganized the style settings screen.
3. Changed to the array form of str_replace() in views_json_encode_special_chars().
4. Empty fields are now included. I don't know why they were originally excluded.
5. Now using the "application/json" content type.
6. Renamed views_json_get_json() to views_json_get(). It now returns an object by default and also has an optional parameter to return the raw JSON string.
1. Renamed views_json_strip_illegal_chars() to views_json_check_label(). It's less of a misnomer and more informative of its intended use.
2. Corrected function comments for views_json_check_label().
3. Using views_json_check_label() on object labels as it should be.