Как javascript может проанализировать сгенерированную Rails строку запроса с вложенными значениями в JSON? - PullRequest
1 голос
/ 08 марта 2011

Rails позволяет генерировать строки запроса путем передачи хэша помощнику типа url_for:

root_path({ :animals => {:dogs => ['pluto','spot'], :cats => 'garfield'} })

Это сгенерирует URL, например:

http://example.com/?animals[dogs][]=pluto&animals[dogs][]=spot&animals[cats]=garfield

Я хочу использовать JavaScriptчтобы превратить это в объект JSON, чтобы у меня был объект, соответствующий хэшу, переданному в хелпер url в rails.

Используя prototype.js, я могу вызвать:

var params = window.location.search.toQueryParams();

params - этообъект, но исходная вложенная структура не сохраняется, вместо этого я получаю:

{
  "animals[dogs][]" : ["pluto","spot"],
  "animals[cats]" : "garfield"
}

То, что я действительно хочу, это:

{
  "animals" : {
    "dogs" : ["pluto","spot"],
    "cats" : "garfield"
  }
}

Также было бы полезно и обратное.Prototype.js имеет toQueryString, который в этом случае просто возвращает пустую строку:

Object.toQueryString({
  "animals" : {
    "dogs" : ["pluto","spot"],
    "cats" : "garfield"
  }
});

Есть ли библиотека методов, которая обеспечивает это?

1 Ответ

1 голос
/ 08 марта 2011

Чтобы ответить на мой вопрос:

Я нашел барбекю jQuery Бена Алмана, которое делает это с помощью плагина jQuery.

http://benalman.com/code/projects/jquery-bbq/examples/deparam/?animals[dogs][]=pluto&animals[dogs][]=spot&animals[cats]=garfield

...