Разница между JSON и AJAX?когда что следует использовать? - PullRequest
8 голосов
/ 01 октября 2010

Здравствуйте, я полностью запутался между json и ajax. Когда бы то, что будет использовано. Я работаю с PHP на стороне сервера. Я регулярно использую ajax для асинхронного получения данных, не вызывая загрузку страницы. Я использую функции php json для передачи данных в javascript. Но я только начал изучать jQuery, и я совершенно сбит с толку, когда использовать функцию ajax, а когда использовать json. Может кто-нибудь помочь мне с этим, спасибо.

Ответы [ 8 ]

16 голосов
/ 01 октября 2010

JSON ( J ava S Cript O bject N otation) и AJAX ( A синхронный J avaScript a nd X ML) - это две совершенно разные концепции: одна используется в качестве носителя данных (JSON), а другая - для извлечения данных. с веб-сервера HTTP или FTP (AJAX), который не зависит от формата передаваемых данных, это может быть текстовый, двоичный файл, XML или JSON, который является практически всем.

Вы можете использовать AJAX с JSON, получив некоторые данные в формате JSON с веб-сервера, используя AJAX, а затем с помощью JavaScript проанализировать данные JSON в форму, доступную для механизма сценариев.

14 голосов
/ 01 октября 2010

Я предполагаю, что вы имеете в виду метод jQuery .getJSON().

Этот метод является просто кратким способом использования jQuery .ajax() метод с данными JSON..getJSON() эквивалентно:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

Таким образом, вы можете использовать .getJSON()если вы будете получать данные JSON с сервера.Данные будут автоматически проанализированы с помощью метода jQuery.parseJSON().


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

5 голосов
/ 01 октября 2010

JSON - это только одно: это формат обмена данными.Когда вы кодируете свои данные в формате JSON, их легко можно декодировать .Скажем, вы хотите закодировать вашу личную информацию:

меня зовут Хуан, и мне 31 год

вы бы закодировали его в формате JSON как:

{'name':'Juan', 'age':31}

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

Теперь AJAX не является ни языком, ни продуктом, ни программным обеспечением, ни спецификацией, ни стандартом.AJAX - это просто способ сделать что-то .Не существует определения AJAX.Вместо этого AJAX представляет собой набор методов, в которых данное представление интернет-ресурса (скажем, конкретной веб-страницы) может асинхронно взаимодействовать с сервером.Например, я набираю это сообщение в текстовом поле, а затем я нажму POST YOUR ANSWER.Сервер получит этот текст и поместит его на сайт, но не будет перезагружать страницу (только ту часть, в которую он фактически помещает мой ответ).

AJAX важен, потому что он обеспечивает внешний вид и-чувствовать себя похожим на настольное приложение (было бы странно, если бы каждый раз, когда вы щелкали что-то в своем настольном приложении, приложение закрывалось и снова открывалось, верно?)

AJAX означает Асинхронный Javascript и XML потому что эти две вещи используются, но это может измениться, если будут разработаны другие языки сценариев на стороне клиента.

Итак, JSON - это хорошо определенная вещь (формат данных), а AJAX - нет (этоспособ делать вещи, но нет четкого определения).Они не связаны, но оба они широко используются в интернет-сервисах, поэтому вы часто встречаете их имена.

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

Вы можете думать о AJAX (асинхронный JavaScript и XML) как о очень быстрой почтовой службе (это немного натянуто, AJAX предназначено для запроса по запросусо мной хоть).Он отправляет информацию, но на самом деле не знает, что именно отправляет.

Вы можете думать о JSON (JavaScript Object Notation) как о письме.Он содержит предоставленную пользователем и определенную информацию в общем формате, который могут понимать языки сервера и клиента (обычно сервер в ASP, PHP, Perl или Ruby, браузер клиента в JavaScript).

Однако, как и при отправке посылок, письмо - не единственная вещь, которую можно отправить.Коробки, тубы и другие форматы могут быть использованы в почтовых отправлениях.Это соответствует JSON, являющемуся одним из многих информационных форматов.XML, HTML, Plain Text, Binary (Images Etc), и любой запатентованный формат, который вы можете придумать, может быть отправлен AJAX на сервер и обратно.

Эти грубые метафоры описывают назначениекаждый.Для технических деталей вы захотите на самом деле исследовать реализации.MooTools имеет оболочку, которая позволяет легко использовать AJAX для передачи сообщений , как и большинство других JavaScript фреймворков.JQuery - еще один (более популярный) фреймворк, который также предоставляет аналогичные возможности .

JSON сам по себе полезен тем, что он отображается непосредственно в нотацию объектов JavaScript, поэтому он особенно полезен.удобен для хранения и передачи информации. На других языках есть парсеры для извлечения и компоновки данных в этом формате.

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

AJAX - это метод доступа, похожий на простой веб-запрос. Однако AJAX асинхронный.

JSON - это кодировка данных, возвращаемых доступом ... На том же уровне HTML или XML.

Запрос AJAX может вернуть любое форматирование данных, и в зависимости от поставленной задачи JSON или HTML может быть правильным форматом данных.

Например, ваше приложение может запросить новый раздел html и использовать его для замены того, что уже существует на вашей странице. jQuery.load() за это. Возможно, вашему приложению просто нужны некоторые данные с сервера, вы можете использовать для этого jQuery.getJSON() и кодировать свои данные в JSON. Хорошая вещь о JSON, его анализ практически не требует усилий, особенно с помощью jQuery.

1 голос
/ 01 октября 2010

Ajax - это концепция использования JavaScript для асинхронных вызовов для передачи данных между клиентом и сервером.Он не определяет, какие данные передаются и как они кодируются.

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

0 голосов
/ 02 января 2017

JSON: нотация объектов JavaScript и это:

  • Синтаксис для хранения и обмена данными.
  • Текст, написанный с нотацией объектов JavaScript.

AJAX - это асинхронный JavaScript и XML, не является языком программирования, и вы можете:

  • Обновить веб-страницу без перезагрузки страницы;
  • Запросить данные с сервера - послестраница загружена;
  • Получение данных с сервера - после загрузки страницы;
  • Отправка данных на сервер - в фоновом режиме.

С комбинациейВы можете отправить запрос AJAX на сервер и вернуться в формате JSON.

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

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

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