Имеет ли jQuery встроенную поддержку JSON? - PullRequest
9 голосов
/ 11 августа 2009

Имеет ли jQuery встроенную поддержку JSON или я должен использовать плагин, например jquery.json-1.3.min.js?

Ответы [ 4 ]

9 голосов
/ 11 августа 2009

Вы также можете использовать $ .ajax и установить для параметра dataType значение "json":

 $.ajax({
      url: "script.php",
      global: false,
      type: "POST",
      data: ({id : this.getAttribute('id')}),
      dataType: "json",
      success: function(json){
         alert(json.foo);
      }
   }
);

Кроме того, $. Get и $. Post имеют необязательный четвертый параметр, который позволяет вам установить тип данных ответа, например ::

$.postJSON = function(url, data, callback) {
    $.post(url, data, callback, "json");
};

$.getJSON = function(url, data, callback) {
    $.get(url, data, callback, "json");
};
9 голосов
/ 11 августа 2009

Да, это так. Вы можете сделать что-то вроде:

$.getJSON('/foo/bar/json-returning-script.php', function(data) {
    // data is the JSON object returned from the script.
});
1 голос
/ 11 мая 2010

jQuery поддерживает декодирование JSON, но не поддерживает кодирование из коробки. Для кодирования вам понадобится плагин, отдельная библиотека или браузер, который изначально поддерживает команды JSON.stringify и JSON.parse.

1 голос
/ 11 августа 2009

Поддержка JSON в JQuery упрощена, поэтому следует проявлять осторожность. Я использовал $.ajax и затем проанализировал текст ответа с библиотекой javascript json.org . Он лексически анализирует, чтобы избежать использования eval() и, возможно, выполнения произвольного кода.

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