¿Hay alguna mejor solución para convertir datos de un formulario que ya está serializado por jQuery function serialize(), cuando el formulario contiene múltiples campos de matriz de entrada? Quiero poder convertir los datos del formulario en un objeto JSON para recrear algunas otras tablas informativas. Así que díganme una mejor manera de convertir la cadena serializada en un objeto JSON.Cómo convertir datos jQuery.serialize() al objeto JSON?
<form id='sampleform'>
<input name='MyName' type='text' /> // Raf
<!--array input fields below-->
<input name='friendname[]' type='text' /> // Bily
<input name='fiendemail[]' type='text' /> // [email protected]
<!--duplicated fields below to add more friends -->
<input name='friendname[]' type='text' /> // Andy
<input name='fiendemail[]' type='text' /> // [email protected]
<input name='friendname[]' type='text' /> // Adam
<input name='fiendemail[]' type='text' /> // [email protected]
</form>
El método jQuery aplicado para obtener los datos
var MyForm = $("#sampleform").serialize();
/** result : MyName=Raf&friendname[]=Billy&fiendemail[][email protected]&friendname[]=Andy&fiendemail[][email protected]&friendname[]=Adam&fiendemail[][email protected]
*/
cómo hago estos datos en un objeto JSON? que debe tener el siguiente ejemplo de datos JSON del formulario anterior.
{
"MyName":"raf",
"friendname":[
{"0":"Bily"},
{"1":"Andy"},
{"2":"Adam"}
],
"friendemail":[
{"0":"[email protected]"},
{"1":"[email protected]"},
{"2":"[email protected]"}
]
}
Técnicamente, así no es como se formateará el objeto JSON en función de su cadena de consulta. Específicamente, los elementos de la matriz no serían objetos con índices, sino solo valores. Dicho esto, si necesita el formato que publicó, probablemente necesite escribir una función personalizada. –
posible duplicado de [Serialize form to JSON with jQuery] (http://stackoverflow.com/questions/1184624/serialize-form-to-json-with-jquery) – SLaks
Gracias Slaks y Jason, sí, estoy de acuerdo en que necesito una función para hacerlo y Slaks lo ha señalado por mí. – Raftalks