Чтение / запись JSON из JS в файл на сервере (не серверное приложение) - PullRequest
2 голосов
/ 30 января 2011

Я работаю с клиентом .js и имею и объект, который мне нужно записать в файл на сервере. Пара вопросов - ввод-вывод файлов с помощью JavaScript является новым для меня ... Я планировал использовать jquery и json. Я использую Java-сервер. У меня нет проблем с чтением того, что я получаю от моего сервлета, но файл ввода-вывода убивает меня! Пара вопросов:

  1. Я могу открыть файл, сгенерированный мной самостоятельно, с помощью .js с помощью вызова $ .ajax, но он не обрабатывает мой синтаксис json (я пробовал и $ .getJson, и $ .ajax - рукописный json, поэтому я возможно (возможно) что-то не так с этим). Я использовал консоль Firebug, и она выглядит хорошо ...

  2. Как я могу записать свой объект в файл на сервере?

  3. Тогда, когда я хочу прочитать это, что мне нужно сделать, чтобы обработать это? Прямо сейчас я использую функцию jsonFilter (использует JSON.parse, если он доступен, иначе eval) для обработки данных, которые я получаю от сервлета.

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

Спасибо за любую помощь! Я в растерянности - перепробовал много разных вещей.

Ответы [ 2 ]

6 голосов
/ 30 января 2011
  1. Вы можете открыть файл, расположенный на сервере, через ajax, запросив файл и загрузив его в объект JSON. Возможно, вы захотите LINT ваш JSON

  2. Невозможно записать объект на сервер через клиент. Это серьезное нарушение безопасности. Обычной практикой является изменение данных JSON, а затем отправка их через ajax в код на стороне сервера. Затем сервер выполнит файл IO.

  3. Да, используя JSON.parse, иначе eval действительно верен. Я бы порекомендовал json2.js

  4. Данные должны быть в порядке, если они передают JSONLint.

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

0 голосов
/ 30 января 2011

js не имеют свойства ввода / вывода;

вы должны использовать ajax или http запрос, чтобы отправить сообщение на сервер, и указать серверу выполнить действие de i / o ...

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