Сериализация объекта в строку запроса в JavaScript / jQuery [дубликат]
этот вопрос уже есть ответ здесь:
Запрос-строку кодировки JavaScript-объекта
28 ответов
Я пытаюсь найти информацию о том, как сериализовать объект в формат строки запроса, но все мои поиски тонут в результатах о том, как пойти другим путем (string/form/whatever to JSON).
I есть
{ one: 'first', two: 'second' }
и я хочу!--3-->
?one=first&two=second
есть хороший способ сделать это? Я не против плагинов или еще чего - то-если код, который я нахожу, не является плагином, я, вероятно, перепишу его в любом случае...
4 ответов:
вы хотите
$.param(): http://api.jquery.com/jQuery.param/в частности, вы хотите это:
var data = { one: 'first', two: 'second' }; var result = $.param(data);когда дают что-то вроде этого:
{a: 1, b : 23, c : "te!@#st"}
$.paramотвечу на это:a=1&b=23&c=te!%40%23st
для быстрой функции, отличной от JQuery...
function jsonToQueryString(json) { return '?' + Object.keys(json).map(function(key) { return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]); }).join('&'); }Примечание это не обрабатывает массивы или вложенные объекты.
другой вариант может быть node-querystring.
Он доступен в обоих
npmиbower, вот почему я использую его.
альтернативно Юи имеет http://yuilibrary.com/yui/docs/api/classes/QueryString.html#method_stringify.
например:
var data = { one: 'first', two: 'second' }; var result = Y.QueryString.stringify(data);
Comments