Tengo un fragmento muy largo de json que se parece un poco a esto:
{ "section: [ [stuff] ] }y actualmente estoy haciendo esto para incluirlo en mi código js:
var obj = { // {All the stuff from above} }Quiero ponerlo en un archivo json que se pueda importar localmente a un script js para que funcione así:
var obj = "path/file.json";y hacer que funcione de la misma manera
Puede usar AJAX para esto con fetch.
const pathToJson = "./path/file.json"; fetch(pathToJson) .then(res => res.json()) .then(json => { console.log(json.section); }); Nota: esto solo funciona con un servidor. Si está utilizando el protocolo file:/// , cambie a un servidor normal, por ejemplo, si tiene Python instalado, puede ejecutarlo en su directorio: python3 -m http.server .
Otra alternativa (no ideal) es crear otro archivo JavaScript con su JSON. Dentro pone algo como:
var obj = { "section": { ... } }Luego, puede vincularlo en su HTML en una etiqueta de secuencia de comandos antes de su secuencia de comandos en ejecución:
<script src="./json-data.js"></script> <script src="./my-script.js"></script> Y en my-script.js :
console.log(obj.section); // {...}Usar fetch con async le permitirá usarlo sin devoluciones de llamada.
Más detalles aquí: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
async function loadJSON() { var file = await fetch("/path/to/file.json"); var obj = await file.json(); // use object like usual here } loadJSON();