Как хранить данные JSON на диске? - PullRequest
9 голосов
/ 04 февраля 2010

Я совершенно новичок в JSON, и мне может понадобиться использовать его в будущем, поэтому я немного почитал об этом. Есть много вопросов относительно JSON на SO. Я нашел кучу статей с помощью Google, я прочитал json.org, но я не понимал, как хранить данные JSON.

JSON - это легкий формат обмена данными. Так как я храню свои данные? В файле ? В базе данных ? Имеет ли это значение?

Я могу использовать его для передачи данных в jsTree (jsTree - это кросс-браузерный компонент на основе javascript. Он упакован как плагин jQuery.) Это будет с Wordpress. Я пытаюсь понять, как я буду хранить данные? В файле? Текстовый файл? В базе данных Wordpress? Какой из них быстрее? Лучше использовать?

ТЕКУЩИЙ СТАТУС перед любым кодированием приложение не запущено

  • Я готовлю исходные данные, и пока мой исходный csv-файл имеет размер 235 КБ и около 700 строк (строка = будущие узлы / листья). Я использую CSV-файл только для сбора данных, затем я буду загружать / обновлять источник данных на веб-сервере.
  • Число будет расти, скажем, каждую неделю на 5-10.
  • Файл находится на моем локальном компьютере и будет храниться (каким-либо образом) на сервере веб-хостинга. Обратите внимание, что я буду использовать все приложение jsTree + JSON в Wordpress
  • Я думаю, я могу использовать это: Теперь анализ JSON на стороне клиента с Wordpress

Ответы [ 4 ]

25 голосов
/ 04 февраля 2010

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

{ 
  "id": 321
  "name" : "Jim",
  "age" : 27,
  "email" : "jim@jimsoft.com"
}

Может быть представлен в xml как

<person>
   <id>321</id>
   <name>Jim</name>
   <age>27</age>
   <email>jim@jimsoft.com</email>
</person>

Или может храниться в таблице, которая выглядит как

_______________________________________
| id | name | age | email              |
========================================
|321 | Jim  | 27  |jim@jimsoft.com     |
----------------------------------------

Так что, если вы можете хранить информацию, как вы хотите. Вам просто нужен какой-то способ сериализации / десериализации данных в любой форме, которую вы хотите.

При всем этом, если вам нужно сохранить JSON и сохранить его в виде файла не получится, вы, вероятно, захотите посмотреть CouchDB или MongoDB . Это ориентированные на документы базы данных, которые на самом деле хранят документы JSON. Они позволят вам хранить любые документы JSON, которые вы хотите. Вы можете создавать представления и запрашивать данные напрямую, без необходимости преобразования данных в различные формы.

5 голосов
/ 04 февраля 2010

Что-то вроде CouchDB - это база данных, в которой она хранится внутри файла. Большинство людей вообще не / store / JSON, они генерируют и отправляют или анализируют и обрабатывают его.

JSON - это идеальный формат для сериализации данных, но к нему применяются те же предостережения, что и к любому другому формату сериализации. Вы храните XML в БД? Обычно нет. Разница в том, что XML приносит жертвы для использования людьми, а JSON делает жертвы легко разбираемыми и быстрыми.

JSON не является заменой CSV. Думайте о CSV как о свободно сформированном дамповом механизме таблицы. Не имеет особого смысла иметь экспорт в формате JSON в Excel.

1 голос
/ 04 февраля 2010

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

Вы говорите: «Пока мой исходный csv-файл имеет размер 235 КБ и около 700 строк (узлов / листьев)». Вы планируете перейти с CSV на JSON? (Вы на самом деле не говорите.) Вы также говорите: «Число будет расти, скажем, каждую неделю на 5-10». Ни CSV, ни JSON не являются оптимальными для больших файлов, к которым будут применены инкрементные изменения, за исключением того, что с CSV вы можете эффективно добавлять данные. Если все, что вы делаете, - это добавление, вы можете придерживаться CSV, но если вам понадобятся другие модификации, я бы, вероятно, разложил данные в БД, чтобы обновления могли быть выполнены эффективно.

На самом деле объем данных, о которых вы говорите, довольно мал, и при таком небольшом количестве обновлений в неделю вам, вероятно, не нужно беспокоиться об эффективности. Делай что хочешь. : -)

1 голос
/ 04 февраля 2010

Погода, когда вы храните его в базе данных или в файле, на самом деле не имеет значения. Дело в том, что вам нужно иметь возможность извлекать его как строку (используя HTTP или какой-либо серверный скрипт).

Например, если вы сохраните его как файл с именем data.json, вы можете использовать ajax для его извлечения, но если вы сохраните его в базе данных, вам нужно будет использовать какой-нибудь серверный сценарий (хотя вы все равно можете использовать ajax) .

Если у вас есть опыт работы с xml, просто подумайте о json как об одном и том же, это просто строковое представление данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...