Método param() de jQuery ajax

Ejemplo

Serializar un key/value Objeto:

var params = { width:1900, height:1200 };
var str = jQuery.param(params);
$("#results").text(str);

Resultado:

width=1680&height=1050

Ejemplo TIY

Mostrar el resultado de la serialización del objeto:

$("button").click(function(){
  $("div").text($.param(personObj));
});

Pruebe usted mismo

Definición y uso

El método param() crea una representación serializada de un array o objeto.

Este valor de serialización se puede usar en la cadena de consulta de URL al realizar una solicitud AJAX.

Sintaxis

jQuery.param(object,traditional)
Parámetros Descripción
object El array o objeto a serializar.
traditional especifica si se debe usar la serialización tradicional (serialización de parámetros) de manera superficial.

detalles

El método param() se utiliza para convertir los valores de los elementos internamente en una representación de cadena serializada. Consulte .serialize() Para obtener más información.

Para jQuery 1.3, si se transmite un parámetro que es una función, .param() devolverá el valor de retorno de esta función en lugar de devolver la función como una cadena.

Para jQuery 1.4, el método .param() serializará el objeto de manera recursiva en profundidad para cumplir con los requisitos de los lenguajes de script modernos, como PHP, Ruby on Rails, etc. Puede deshabilitar esta función globalmente configurando jQuery.ajaxSettings.traditional = true;.

Si el objeto transmitido está en el array, debe estar en .serializeArray() el valor de retorno es un objeto de array en formato:

[{name:"first",value:"Rick"},
{name:"last",value:"Astley"}
{name:"job",value:"Rock Star"}]

Nota:Debido a que algunas estructuras de framework tienen limitaciones en la capacidad de análisis de números serializados, por favor ten cuidado al pasar arrays que contienen objetos o matrices anidadas como parámetros!

En jQuery 1.4, también se serializarán los elementos input de HTML5.

Más ejemplos

Podemos mostrar la representación de consulta de objeto y la versión codificada en URI de la siguiente manera:

var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);
var recursiveDecoded = decodeURIComponent($.param(myObject));
alert(recursiveEncoded);
alert(recursiveDecoded);

Los valores de recursiveEncoded y recursiveDecoded se muestran a continuación:

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

Se puede establecer el parámetro traditional en true para simular el comportamiento de $.param() en versiones anteriores a jQuery 1.4:

var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var shallowEncoded = $.param(myObject, true);
var shallowDecoded = decodeURIComponent(shallowEncoded);
alert(shallowEncoded);
alert(shallowDecoded);

Los valores de recursiveEncoded y recursiveDecoded se muestran a continuación:

a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3