Лучший формат данных для отправки из браузера на сервер на основе Java с ajax? - PullRequest
1 голос
/ 09 октября 2010

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

Но я предполагаю, что может существовать более удобный способ, основанный на использовании некоторых готовых решений (libs), поэтому (и что) я спрашиваю. Еще одна вещь, которая может сыграть определенную роль в принятии решения, заключается в том, что мне нужно передавать довольно сложные вещи (т.е. я хочу реализовать какой-то протокол).

Ответы [ 2 ]

2 голосов
/ 09 октября 2010

Ваш реальный выбор для обмена данными - это XML и JSON.Я много работал с обоими, и в настоящее время JSON - мой первый выбор.

По моему мнению, JSON превосходит XML по всем соображениям, кроме одного.JSON легче и его легче читать.Он лучше подходит для представления форматов данных, потому что он предназначен для нанесения меток на отдельные блоки данных.Синтаксический анализатор JSON гораздо проще в написании и занимает гораздо меньше кода.Я обнаружил, что ограниченный набор типов, которые поддерживает JSON, идеально подходит для обмена данными.JSON не обременен унаследованной семантикой для разметки документов.

Кроме того, если ваш клиент использует JavaScript, поддержка JSON является внутренней.

Единственное преимущество для XML состоит в том, что могут существовать и более совершенные инструменты для работы с данными в этом формате.Тем не менее, следует сказать, что JSON достаточно прост и не требует инструментов как таковых.

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

Только мои 200 центов.

См .: http://www.json.org/

Возможно, вас заинтересует мой облегченный открытый код с открытым исходным кодом JSON-анализатор .


РЕДАКТИРОВАТЬ: 2010-08-10 00: 43

В ответ на комментарий о безопасности использования JS eval, следующая выдержка из Сайт JSON может представлять интерес:

Чтобы преобразовать текст JSON в объект, вы можете использовать функцию eval ().eval () вызывает компилятор JavaScript.Поскольку JSON является правильным подмножеством JavaScript, компилятор правильно проанализирует текст и создаст объектную структуру.Текст должен быть заключен в скобки, чтобы избежать путаницы в синтаксисе JavaScript.

var myObject = eval ('(' + myJSONtext + ')');

Функция eval оченьбыстро.Однако он может компилировать и выполнять любую программу JavaScript, поэтому могут возникнуть проблемы с безопасностью.Использование eval указывается, когда источник является доверенным и компетентным.Гораздо безопаснее использовать анализатор JSON.В веб-приложениях через XMLHttpRequest общение разрешено только с тем же источником, который предоставляет эту страницу, поэтому он является доверенным.Но это может быть не компетентно.Если сервер не является строгим в своей кодировке JSON или не тщательно проверяет все свои входные данные, то он может доставить недопустимый текст JSON, который может содержать опасный сценарий.Функция eval будет выполнять сценарий, раскрывая его злобу.

Чтобы защититься от этого, следует использовать анализатор JSON.Анализатор JSON распознает только текст JSON, отклоняя все сценарии.В браузерах, которые предоставляют встроенную поддержку JSON, анализаторы JSON также намного быстрее, чем eval.Ожидается, что собственная поддержка JSON будет включена в следующий стандарт ECMAScript.

0 голосов
/ 09 октября 2010
...