Загрузка локального файла Json в приложение React

#javascript #json #reactjs

#javascript #json #reactjs

Вопрос:

Я пытаюсь понять, какие файлы json могут быть импортированы в react.

Если я сделаю

 import jsonData from "./file.json";
console.log(jsonData[60]);
  

Почему это выводится на печать explore ?

Автоматически ли import преобразует json в js obj, поскольку нам не нужно его анализировать?

И почему выполнение вызова fetch для API, который выдает JSON, должно быть проанализировано в js obj?

В чем разница между двумя методами, которые оба выдают json?

Мой файл.json выглядит так

 {
  "60" : {
    "action": "explore",
    "confd": "0.998647"
  },
  "120": {
    "action": "explore",
    "confd": "0.998647"
  },
  "180": {
    "action": "explore",
    "confd": "0.998647"
  }
}
  

Комментарии:

1. Файл JSON ЯВЛЯЕТСЯ объектом JS. Это буквально то, что означает JSON, поэтому нет никакого «преобразования». Если вы просто распечатаете jsonData , вы сможете увидеть его форму и содержимое. Не уверен, почему вы получаете этот вывод, но проверьте форму данных

Ответ №1:

  • Создайте файл .js, а затем поместите в него свои данные JSON.
  • Затем экспортируйте его.
 

    export const myjson = {
        "60" : {
          "action": "explore",
          "confd": "0.998647"
        },
        "120": {
          "action": "explore",
          "confd": "0.998647"
        },
        "180": {
          "action": "explore",
          "confd": "0.998647"
        }
      };

  
  • Импортируйте свои данные JSON из того места, где вы хотите их получить.
 

    import { myjson } from "./jsonData.js";

  

Комментарии:

1. но когда я выполняю простой импорт файла json, он ведет себя как obj и не выполняет синтаксический анализ. Принимая во внимание, что результат вызова выборки (JSON) должен быть проанализирован в js obj перед его использованием

2. вы пробовали jsonData.json(); например; var myJson = jsonData.json(); затем работать с переменной myJson?

3. или, если вы хотите увидеть все jsonData и если он показывает вас как объект, попробуйте это; JSON.stringify(jsonData);

4. я думаю, он хочет знать поведение с использованием файла .json и результат json из выборки, а не как использовать объектную нотацию js из файла js

5. @RapSherlock это правильно. Потому что импорт локального файла json работает как js Obj. Но данные из вызова выборки должны быть преобразованы с помощью JSON.parse перед их использованием.