If all you want to do is load external json as a string, you can do it
using syntax almost identical to what you suggest. Just change your
data.json file so the content is

var data = ' [include your json here, be sure to escape things properly]';

Then just load this file before your external script e.g.:

<!cript language="javascript" src="data.json"></script>
<!cript language="javascript" src="external_script.js"></script>

Within external_script.js, you can reference the data variable just as you
would have had it been defined in external_script.js.

Depending on what you're doing with your json, it may or may not be a good
approach, but it will work.


On Wed, Apr 6, 2016 at 6:02 PM, Ken Irwin <[log in to unmask]> wrote:

> Hi folks,
> I'm working on a javascript project that currently has a bunch of JSON
> data defined inside the script; I'd like to move the data to a file outside
> the JS file so it can be updated without touching the script, but I'm
> running up against a few challenges externalizing the data.
> The static JSON file lives in the same directory with the script.
> If I had my druthers, I'd to it PHP style, but I don't think JS works this
> way:
> =====
> External file:
> [all this JSON]
> Script:
> var data = include ('data.json');
> ====
> All the options I find for loading external files are all AJAX-y, whereas
> what I really want is something synchronous - the script doesn't go on
> until the data loads.
> I've also had some lexical scope issues where I can get the data inside
> the getJSON() function, but then have trouble transporting the data out of
> that function into the rest of the script.
> Does anyone know of a good way to accomplish this? I imagine there's some
> incantation that I can perform, but I'm struggling to find it.
> Thanks,
> Ken