Прочитать файл json c

Обновлено: 07.07.2024

Я сохранил файл JSON в своей локальной системе и создал файл JavaScript, чтобы, например, прочитать файл JSON и распечатать данные. Вот файл JSON:

предположим, что это путь к файлу JSON: /Users/Documents/workspace/test.json .

может ли кто-нибудь помочь мне с написанием простого фрагмента кода для чтения файла JSON и печати данных внутри него в JavaScript?

обходным путем является запуск локального веб-сервера, обслуживание файла и вызов AJAX на localhost.

что касается помощи в написании кода для чтения JSON, вы должны прочитать документацию для jQuery.getJSON() :

для чтения внешнего локального файла JSON (data.json) используя javascript, сначала создайте свои данные.файл json:

укажите путь к файлу json в источнике скрипта вместе с файлом javascript.

получить объект из файла json

для получения дополнительной информации см. раздел этой ссылке.

загрузка from harddisk является асинхронной операцией, и поэтому ей необходимо указать функцию обратного вызова для выполнения после загрузки файла.

эта функция работает также для загрузки .html или .txt файлы, путем переопределения параметра типа mime в "text/html" , "text/plain" etc.

  1. сначала создайте файл json. В этом примере мой файл-words.в JSON
  1. и вот мой код i.e, узел.js. Примечание до readFileSync : это делает его возвращение не Buffer (хотя JSON.parse справится), а строкой. Я создаю сервер, чтобы увидеть результат.
  1. когда вы хотите прочитать определенные детали ИД вы можете назовите код as..
  1. когда вы вошли в адрес localhost:3030/get/33 это даст детали, связанные с этим идентификатором. и Вы тоже читаете по имени. Мой файл json имеет simillar имена с этим кодом вы можете получить сведения об одном имени. и он не напечатал все имена simillar
  1. и если вы хотите узнать подобные детали, вы можете использовать это код.
  1. если вы хотите прочитать всю информацию в файле, используйте этот код ниже.

в зависимости от Вашего браузера, вы можете получить доступ к локальным файлам. Но это может не сработать для всех пользователей вашего приложения.

после загрузки файла вы можете получить данные, используя:

вы можете просто сделать:

обратите внимание: файл загружается один раз, последующие вызовы будут использовать кэш.

Если вы используете локальные файлы, почему бы просто не упаковать данные как объект js?

данные.js

очень удобно.
Переименуйте файл json в ".Ак" вместо ".формат JSON."

поэтому следуйте своему коду нормально.

однако, просто для информации, содержание моего json это выглядит как СНиП ниже.

вы можете увидеть ответ myObj с помощью консоли.инструкция log (комментируется).

Если у вас есть файл в другой папке, укажите полный путь вместо имени файла.

поскольку у вас есть веб-приложение, у вас может быть клиент и сервер.

Если у вас есть только ваш браузер, и вы хотите прочитать локальный файл с помощью JavaScript, который работает в вашем браузере, это означает, что у вас есть только клиент. По соображениям безопасности браузер не должен позволять вам делать такие вещи.

однако, как объяснил лаухуб выше, это, похоже, работает:

чтение JSON можно переместить в другую функцию, для DRY; но пример здесь больше демонстрирует, как использовать обещания.

один простой обходной путь-поместить ваш файл JSON внутри локально работающего сервера. для этого с терминала перейдите в папку проекта и запустите локальный сервер на каком-нибудь порту e.g 8181

использование Fetch API является самым простым решением:

он отлично работает в Firefox, но в Chrome вам нужно настроить параметры безопасности.

вы можете использовать D3 для обработки обратного вызова и загрузки локального файла JSON data.json следующим образом:


Как уже упоминалось ранее, это не работает с помощью вызова AJAX. Однако, есть способ обойти это. Используя элемент input, вы можете выбрать файл:

затем вы можете прочитать файл с помощью JS с FileReader():

взял Стано-х отличный ответ и завернул его в обещание. Это может быть полезно, если у вас нет такой опции, как node или webpack, чтобы вернуться к загрузке файла json из файловой системы:

вы можете назвать это так:

Итак, если вы планируете пойти с "Apache Tomcat" для размещения вашего файла JSON,

1> после запуска сервера убедитесь, что ваш Apache Tomcat запущен и работает, перейдя по следующему url: "localhost:8080" -

enter image description here

2> Далее, перейдите к "папке webapps" - "C:\Program файлы\Apache Software Foundation\Tomcat 8.5\webapps". И создайте папку проекта или скопируйте проект папка.

enter image description here

enter image description here

3> вставьте туда свой файл json.

enter image description here

4> и все. Вы молодец! Просто иди к . --35-->http://localhost:8080/$имя_проекта$/$jsonFile_name$.в JSON"

Closed 7 years ago .

I'm trying to find a good way to parse JSON in C. I really don't need a huge library or anything, I would rather have something small and lightweight with a bare minimum of features, but good documentation.

Does anyone have anything they can point me to?

13.8k 8 8 gold badges 50 50 silver badges 81 81 bronze badges 3,299 3 3 gold badges 27 27 silver badges 41 41 bronze badges Would objective-c library work? I use TouchJson on my mac when in obj-c its very easy to use and small.

7 Answers 7

Json isn't a huge language to start with, so libraries for it are likely to be small(er than Xml libraries, at least).


4,027 4 4 gold badges 24 24 silver badges 48 48 bronze badges 55.8k 14 14 gold badges 119 119 silver badges 176 176 bronze badges Yea thanks for the answer! I went through a bunch of them and they were pretty poorly documented/maintained. I thought I would try here before I suffered through integrating one. :)

cJSON has a decent API and is small (2 files,

700 lines). Many of the other JSON parsers I looked at first were huge. I just want to parse some JSON.

Edit: We've made some improvements to cJSON over the years.

5,469 4 4 gold badges 47 47 silver badges 56 56 bronze badges

NXJSON is full-featured yet very small (

400 lines of code) JSON parser, which has easy to use API:


19.1k 6 6 gold badges 46 46 silver badges 52 52 bronze badges As you seem to be the developer of NXJSON, maybe you could comment on how it compares with cJSON or other options? Simple things done simple way - this is main difference of NXJSON from most other parsers. cJSON is also simple, but beyond json parser it also includes json constructor as well as serializer. cJSON needs more memory as it duplicates all strings, while NXJSON does all manipulations in place destroying original content. Depending on your task these differences could be considered either as advantages or disadvantages. NXJSON also handles comments, which is good for parsing config files.

Jsmn is quite minimalistic and has only two functions to work with.


Apparently they have fixed their "TODO" for Unicode symbols.

You can have a look at Jansson

The website states the following: Jansson is a C library for encoding, decoding and manipulating JSON data. It features:

  • Simple and intuitive API and data model
  • Can both encode to and decode from JSON
  • Comprehensive documentation
  • No dependencies on other libraries
  • Full Unicode support (UTF-8)
  • Extensive test suite
13.9k 12 12 gold badges 51 51 silver badges 88 88 bronze badges 1,857 2 2 gold badges 13 13 silver badges 9 9 bronze badges I was tempted to use jsmn because of its speed[1], but it does not support encoding. Furthermore Jansson is really easy to use. --- [1] translate.google.it/…

I used JSON-C for a work project and would recommend it. Lightweight and is released with open licensing.

Documentation is included in the distribution. You basically have *_add functions to create JSON objects, equivalent *_put functions to release their memory, and utility functions that convert types and output objects in string representation.

The licensing allows inclusion with your project. We used it in this way, compiling JSON-C as a static library that is linked in with the main build. That way, we don't have to worry about dependencies (other than installing Xcode).

JSON-C also built for us under OS X (x86 Intel) and Linux (x86 Intel) without incident. If your project needs to be portable, this is a good start.

JSON библиотека
Как и распарсить так и сбилдить. Что бы кушало utf-16,и было совместимо с visual studio.Есть ли.

Работа с Json-файлами. Библиотека jsoncpp C+
Здраствуйте. Начал работу с json-файлами. С подключением всё нормально, но как только начинаю.

Json c++ send end write - существует ли готовая библиотека
Здрасте, нужна такая штука которая бы умела посылать json обьекты методом post на кукую-нить.

Решение

И необходимо получить значение Settings -> AutoReload, получить значение Settings -> CheckingUpdates, но как это сделать?

На мой взгляд, nlohmann - самая лучшая на сегодняшний день библиотека для json)))

Сочетает в себе такие качества, как эконочичность, быстродействие и высокое юзабилити.
Главная киллер-фича nlohmann - тщательно продуманные, настроенные,
готовые к употреблению из коробки, удобные средства сериализации/десериализации.

другие представленные либки не дотягивают)))

Не нужно.
Загрузка из файла осуществляется так:

получить значение Settings -> AutoReload, получить значение Settings -> CheckingUpdates, но как это сделать?

Добавлено через 3 часа 33 минуты
Ребяты, по-прежнему нуждаюсь в помощи.
Разобраться в том, как изменять, перезаписывать значения самого .JSON файла.

eva2326, Вы можете набросать небольшой ХелпМи для того, чтобы скомпилировать свой "nlohmann/json.hpp" из исходниов гитхаба?
У меня проблема, VS2015 апдейт1 отказывается работать с этим файлом выплевывая ошибку

По видимому сборка только для релиса VS2017 или хотябы Апдейт3 на VS2015

Добавлено через 1 час 54 минуты
Не дождался ответ, рискнул, обновил VS2015 до апдейта 3, включить в проект json.hpp получилось.


Чтение JSON - файла
Помогите считать данные с json'а. Есть файл с таким вот содержимым: < &quot;URLS&quot;: >Нужно.

Чтение JSON файла
Здравствуйте! Только начал работать с json, нужна помощь знающих. Помогите пожалуйста с проблемой.


Чтение JSON файла
Здравствуйте, имеется следующий по структуре JSON файл: < &quot;results&quot;: Прочитал.

Я пытаюсь прочитать в файле JSON. До сих пор я сосредоточился на использовании jsoncpp библиотека. Тем не менее, документация довольно трудно понять для меня. Может ли кто-нибудь объяснить в светских терминах, что он делает?

скажем, у меня есть people.json выглядит так:

что происходит, когда я читаю это? Могу ли я создать какую-то структуру данных people который я могу индексировать по Anna и Ben а также age и profession ? Каким будет тип данных people ? Я думал, что это будет что-то похожее на (вложенную) карту, но Значения карты всегда должны иметь один и тот же тип, не так ли?

я работал с python раньше, и моя "цель" (которая может быть плохо установлена для C++)-получить эквивалент вложенного словаря python.

Да, вы можете создать вложенную структуру данных people , который может быть проиндексирован Anna и Ben . Однако, вы не можете индексировать его напрямую по age и profession (Я вернусь к этой части кода).

тип данных people типа Json::Value (который определен в jsoncpp). Вы правы, это похоже на вложенную карту, но Value - это структура данных, которая определяется таким образом, что несколько типов могут быть сохранены и доступны. Он похож на карту с string как ключ и Json::Value как значение. Это также может быть карта между unsigned int как ключ и Json::Value как значение (в случае массивов json).

как вы можете видеть, вы можете индексировать объект json только на основе иерархии входных данных.

посмотреть репозиторий JSON nlohmann на GitHub. Я обнаружил, что это самый удобный способ работы с JSON.

Он разработан, чтобы вести себя так же, как контейнер STL, что делает его использование очень интуитивным.

по существу javascript и C++ работают на двух разных принципах. Javascript создает "ассоциативный массив" или хэш-таблицу, которая соответствует строковому ключу, который является именем Поля, значению. C++ выкладывает структуры в память, поэтому первые 4 байта-это целое число, которое является возрастом, тогда, возможно, у нас есть фиксированная 32-байтовая строка, которая представляет "профессию".

таким образом, javascript будет обрабатывать такие вещи, как" возраст "18 в одной записи и" девятнадцать " в другой. C++ не может. (Однако C++ намного быстрее).

Итак, если мы хотим обрабатывать JSON в C++, мы должны построить ассоциативный массив с нуля. Затем мы должны пометить значения их типами. Это целое число, реальное значение (возможно, возвращаемое как "double"), логическое, строка? Из этого следует, что класс JSON C++ является довольно большим куском кода. Эффективно то, что мы делаем, - это реализация немного движка javascript на C++. Мы затем передаем наш формат JSON парсер JSON в виде строки, и он tokenises его, и дает нам функции для запроса JSON из C++.

пример (с полным исходным кодом) для чтения файла конфигурации json:

хранение людей, как это

вызовет проблемы, особенно если разные народы имеют одинаковое имя..

скорее используйте массив, хранящий такие объекты

таким образом, вы можете перечислять объекты или получать объекты по числовому индексу. помните, что json-это структура хранения, а не динамический сортировщик или индексатор. используйте данные, хранящиеся в json, для построения индексов по мере необходимости и доступа к данным.

Читайте также: