básicamente hay dos formas, ajax o jsonp. el primero es mediante el objeto XMLHttpRequest. realizas la petición y luego la respuesta la pasas por el método JSON.parse. el segundo es creando una url pasandole al archivo json -o el script que lo genera- un parámetro de envoltorio. lo que hace es que la respuesta json la devuelve en forma de invocación con el parámetro indicado. por ejemplo,
file.json?wrap=fn lo cargas normalmente en un elemento script. luego el archivo file.json -un script de lado servidor- devolveria la respuesta tal que asi.
Código:
fn(/* el json aqui adentro */);
por supuesto, debes tener antes definido una función con el nombre indicado en ese parámetro.