Дополнительно
Как прочитать внешний локальный JSON-файл в JavaScript?
Я сохранил файл JSON в локальной системе и создал файл JavaScript, чтобы прочитать файл JSON и вывести данные. Вот файл JSON:
{"resource":"A","literals":["B","C","D"]}
Допустим, путь к файлу JSON таков: /Users/Documents/workspace/test.json
.
Не мог бы кто-нибудь помочь мне написать простой кусок кода для чтения JSON файла и печати данных внутри него на JavaScript?
209
20
Для чтения внешнего локального JSON-файла (data.json) с помощью javascript сначала создайте файл data.json:
Более подробную информацию см. в этой ссылке.
Загрузка файла
.json
с жесткого диска является асинхронной операцией, поэтому необходимо указать функцию обратного вызова, которая будет выполняться после загрузки файла.Эта функция работает также для загрузки файлов
.html
или.txt
, переопределяя параметр mime type на"text/html"
,"text/plain"
и т.д.Вы не можете сделать AJAX вызов к локальному ресурсу, так как запрос выполняется с использованием HTTP.
Обходной путь - запустить локальный веб-сервер, передать файл и выполнить AJAX-вызов на localhost.
Что касается помощи в написании кода для чтения JSON, вам следует прочитать документацию по
jQuery.getJSON()
:http://api.jquery.com/jQuery.getJSON/
'utf8'
вreadFileSync
: это заставляет его возвращать небуфер
(хотяJSON.parse
может его обработать), а строку. Я создаю сервер, чтобы увидеть результат...Когда в Node.js или при использовании require.js в браузере, вы можете просто сделать:
Обратите внимание: файл загружается один раз, последующие вызовы будут использовать кэш.
Использование Fetch API - самое простое решение:
Он отлично работает в Firefox, но в Chrome вам придется настроить параметры безопасности.
В зависимости от браузера вы можете получить доступ к локальным файлам. Но это может работать не для всех пользователей вашего приложения.
Для этого вы можете попробовать воспользоваться инструкциями отсюда: http://www.html5rocks.com/en/tutorials/file/dndfiles/.
После загрузки файла вы можете получить данные, используя:
Если вы используете локальные файлы, почему нельзя просто packade данные в JS-объект?
data.js
Нет запросы XMLHttpRequest, без разбора, просто использовать `файл mydata.ресурс напрямую
Очень просто.<БР> Переименуйте JSON файл, чтобы ".в JS-то" вместо " по.JSON с помощью".<БР>
Так выполните ваш код нормально.
Тем не менее, просто для информации, содержание моих формате JSON это's выглядит как ниже СНиП.
<БР> Как много людей упоминалось ранее, это не't работа с помощью AJAX-вызов. Однако, там'ы способ обойти ее. С помощью входного элемента, вы можете выбрать свой файл.
Файл выбран (.в JSON) должны иметь следующую структуру:
<БР>
Затем вы можете прочитать файл с помощью JS с FileReader():
Просто используйте $.помощью метода getjson, а затем $.каждый для прохода пара ключ /значение. Пример содержимого файла JSON и функционального кода:
Вы можете использовать XMLHttpRequest() метод:
Вы можете увидеть ответ myObj с помощью консоли.заявление журнала(закомментирован).
Если вы знаете, в AngularJS, вы можете использовать $HTTP:
Если у вас есть файл в другую папку указать полный путь, а не именем.
Поскольку у вас есть веб-приложение, у вас может быть клиентом и сервером.
Если у вас есть только ваш браузер, и вы хотите прочитать локальный файл с помощью JavaScript, который работает в вашем браузере, это означает, что у вас есть только клиент. По соображениям безопасности браузера не позволит вам сделать такую вещь.
Однако, как lauhub описано выше, это, кажется, работает:
http://www.html5rocks.com/en/tutorials/file/dndfiles/
Другим решением является установка где-то в вашей машине веб-сервер (в Windows или обезьяна в Linux) и с помощью XMLHttpRequest или библиотеки D3, запросить файл с сервера и читать его. Сервер будет загружать файл из локальной файловой системы, и служить его к вам через интернет.
Вы должны создать новый экземпляр XMLHttpRequest и загрузить содержимое файла JSON.
Этот совет работает для меня (https://codepen.io/KryptoniteDove/post/load-json-file-locally-using-pure-javascript):
Одно простое решение-это поставить ваш файл JSON внутри локально запущенным сервером. для этого в терминале перейти в папку проекта и запустить локальный сервер на некоторое число e порт.г 8181
Перейдя к http://localhost:8181/ должна отображать все файлы, в том числе в JSON. Не забудьте установить Python, если вы Don'т уже есть.
Мне понравилось то, что Стано/Meetar прокомментировал выше. Я использую его для чтения .JSON-файлы. Я расширил свои примеры, используя обещание. Вот plunker то же самое. https://plnkr.co/edit/PaNhe1XizWZ7C0r3ZVQx?p=preview
Чтение JSON может быть перемещен в другую функцию, для сухой, но пример здесь-это скорее демонстрация того, как использовать обещания.
Вы можете импортировать его как модуль ЕС6;
Если вы можете запустить локальный веб-сервер (как предложил Chris P выше), и если вы можете использовать jQuery, вы можете попробовать http://api.jquery.com/jQuery.getJSON/.
Вы могли бы использовать D3 для обработки обратного вызова и загрузки данных в локальный файл в формате JSON
.формат JSON
, следующим образом:Я взял Стано'С]1 Отличный ответ и обвил его обещание. Это может быть полезно, если вы Don'т иметь возможность как узел или webpack, чтобы возвратиться, чтобы загрузить JSON-файл из файловой системы:
Вы можете называть это так: