I see you have
header("Content-Disposition: attachment; filename=\"json_api.json\"", true);
in the output function.
I commented it out to be able to use plugins for Chrome to pretty-view the json in chrome without using dev=1.
Just wondering if that header is necessary for anything in particular or if it's safe to comment it out? Don't have IE on my system so I can't test with that browser, and I recall old IE having a hard time without it. Just wonder if that's the reason for it (and if so, would like to try with 'inline' instead of 'attachment' - works well in Chrome, Safari and Firefox newest versions...)