Estoy tratando de importar un archivo .json a Typescript como una matriz y no sé cómo obtener los valores.
import * as data from './list.json'; const array = data; console.log(array);mi archivo json
[ "Element 1", "Element 2", "Element 3", "Element 4", "Element 5" ]Así es como se ve la matriz de variables en la consola cuando intento iniciar sesión en la consola. Puedo ver que todos los elementos de la matriz están por defecto: pero no sé cómo acceder a eso. Probé array[0] y eso no está definido
Module default: Array(5) 0: "Element 1" 1: "Element 2" 2: "Element 3" 3: "Element 4" 4: "Element 5" length: 5 [[Prototype]]: Array(0) __esModule: true Symbol(Symbol.toStringTag): "Module"Hay algunas formas de importar json.
import json from "file.json"; import json = require("file.json"); import * as json from "file.json";Puedes usar el que quieras. Se prefiere el primero.
Una forma de importar la exportación predeterminada es esta sintaxis
import data from './list.json'; const array = data; console.log(array);Pero también debería poder acceder a los elementos de la matriz con su método de importación:
import * as data from './list.json'; const array = data; console.log(array[1]); // 'Element 2'estaba usando:
import * as items from 'file.json'; console.log(`>>>`, Array.isArray(productDetails)); console.log(`>>>`, Object.keys(productDetails));devuelve un Objeto que tiene claves numéricas (como un Array) pero que no es un Array:
console.log >>> false at Object.<anonymous> (src/lib/file.ts:67:9) console.log >>> [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', ... 1410 more items ]Como puede ver, el objeto se estaba importando como un objeto simple, no como una matriz.
Cambiar la importación a:
import items from 'file.json'; Se resolvió el problema, importando items como una matriz.