Jquery объект в строку

Содержание:

jQuery.param( obj ) Возвращает: String

Описание: Преобразует объект, массив или массив объектов в строку, которая соответствует формату передачи данных через url.

Добавлен в версии: 1.2 jQuery.param( obj )

Добавлен в версии: 1.4 jQuery.param( obj, traditional )

This function is used internally to convert form element values into a serialized string representation (See .serialize() for more information).

As of jQuery 1.3, the return value of a function is used instead of the function as a String.

As of jQuery 1.4, the $.param() method serializes deep objects recursively to accommodate modern scripting languages and frameworks such as PHP and Ruby on Rails. You can disable this functionality globally by setting jQuery.ajaxSettings.traditional = true; .

As of jQuery 3.0, the $.param() method no longer uses jQuery.ajaxSettings.traditional as its default setting and will default to false . For best compatibility across versions, call $.param() with an explicit value for the second argument and do not use defaults.

If the object passed is in an Array, it must be an array of objects in the format returned by .serializeArray()

Note: Because some frameworks have limited ability to parse serialized arrays, developers should exercise caution when passing an obj argument that contains objects or arrays nested within another array.

Note: Because there is no universally agreed-upon specification for param strings, it is not possible to encode complex data structures using this method in a manner that works ideally across all languages supporting such input. Use JSON format as an alternative for encoding complex data instead.

In jQuery 1.4, HTML5 input elements are also serialized.

We can display a query string representation of an object and a URI-decoded version of the same as follows:

Материал из JQuery

obj — объект, массив или массив объектов, которые будут преобразованы в строку.

Начиная с jQuery 1.4, по умолчанию, выполняется "глубокое" преобразование элементов obj, что бы соответствовать современным фреймворкам и языкам, таким как PHP или Ruby on Rails. Отменить "глубокое" преобразование можно, указав в необязательном параметре traditional значение true. А что бы "поверхностное" преобразование было установлено по умолчанию, нужно использовать следующий код: jQuery.ajaxSettings.traditional = true;.

Если вы хотите преобразовать в строку массив объектов, то он должен соответствовать формату, которого придерживается метод .serializeArray(), а именно:

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

Пример

Продемонстрируем преобразование на простом примере:

Результатом будет следующая строка:
one=1&two=2&three=3

Выведем на экран результат довольно сложного преобразования:

В результате, на экране появятся два сообщения:
a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3

А вот какой результат мы бы получили, если бы использовали поверхностное (не глубокое) преобразование:
a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3

Преобразует объект или массив в сериализованную строку для использования в URL при Ajax запросах.

version added: 1.2 jQuery.param( obj )

obj
Тип: Массив или Объект
Массив или объект, который предстоит сериализовать

version added: 1.4 jQuery.param( obj, traditional )

obj
Тип: Массив или Объект
Массив или объект, который предстоит сериализовать

traditional
Тип: Булево значение
Логическое значение, определяющее следует ли рекурсивно проходить по массиву или объекту или нет.

Документ без названия

Данная функция предназначена для преобразования значений элементов в сериализованную строку (См. .serialize())

Начиная с версии jQuery 1.3 данны метод возвращает Строку, а не Функцию.

Начиная с версии jQuery 1.4, метод $.param() рекурсивно сериализует сложные объекты для их дальнейшего использования в современных языках, таких как PHP и Ruby on Rails. Вы можете отключить данную возможность следующей командой: jQuery.ajaxSettings.traditional = true;

Если в качестве аргумента передаётся Массив, то это должен быть массив объектов, обработанный методом .serializeArray()

Заметка: поскольку многие фрэймворки убрали возможность разбора сериализованных массивов, разработчики должны быть очень осторожны, когда передают параметр obj , содержащий массив или вложенные массивы.

Заметка: поскольку на данный момент не существует универсальных спецификация вида строки параметров, передача данных с сложной, вложенной структурой может работать по-разному для разных языков. До тех пор пока не будет ясных спецификаци, метод $.param будет работать так как сейчас.

Начиная с версии jQuery 1.4, так же поддерживается сериализация элементов HTML5.

Преобразование объекта в URI вид и обратно можно следующим образом:

Значения recursiveEncoded и recursiveDecoded преобразуется в следующий вид:

Для того чтобы заставить метод $.param() работать как в версии ниже чем jQuery 1.4, задайте параметру traditional значение true :

Значения shallowEncoded и shallowDecoded преобразуется в следующий вид:

Примеры:

Пример: сериализация объекта вида ключ/значение

HTML:
JS:

Оцените статью
Много толка
Добавить комментарий