Можете ли вы отправить JSON через URL? - PullRequest
6 голосов
/ 09 июля 2011

У меня есть хэш ruby, где ключи - это URL-адреса, а значения - целые числа. Я преобразую хэш в JSON, и мне интересно, смогу ли я отправить JSON внутри URL через запрос AJAX, а затем извлечь этот JSON из хэша params.

Кроме того, я собираюсь отправить JSONifyed рубиновый хеш обратно клиенту. Если в моей функции AJAX есть функция обратного вызова, в которой я получаю данные в переменной data, как мне проанализировать этот JSON с JQuery?

Пожалуйста, дайте мне знать, если мне нужно быть более конкретным.

Ответы [ 2 ]

11 голосов
/ 09 июля 2011

Да, вы можете без проблем. Ручное кодирование / декодирование не требуется!

Ваш код будет выглядеть так:

var jsonParam = '{"name":"Edgar"}'; //Sample json param
$.ajax({
  ...  
  type: "get", //This sends in url
  data: {jsonParam: jsonParam}, //This will encode your json for url automatically
  dataType: "json", //With this the response will be automatically json-decoded!
  success: function(response){ //Assuming your server output was '{"lastName":"Villegas"}' as string
     alert(response.lastName);
  }
});

Как видите, ручное кодирование / декодирование не требовалось. Jquery справляется со всем этим!

Надеюсь, это поможет. Приветствия

PS: Если по какой-то причине вам необходимо кодировать / декодировать ваш json вручную, используйте url-методы javascript encodeURIComponent(string) и $.parseJSON(jsonString).

1 голос
/ 09 июля 2011

Да, вы можете передать объект json в качестве параметра get или post.

Для анализа строки json с использованием Jquery вы можете использовать $ .parseJSON.

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