The problem isn't JSON, it's the Same Origin Policy. When your page is loaded from a local file rather than over HTTP, that's origin "null". Some browsers prevent ajax calls between origin null and origin null, even preventing loading files from the same directory.
If you ran that via a web server (you can install one locally for development), the files would have the same origin and the browser would allow you to load the JSON file.