我有一个发送ajax请求的方法。当收到服务器的回复时,我需要序列化并稍后反序列化
$.ajax({
//.....
done(function(data) {
//1 Need to serialize data (which is an array)
});
function myFunction() {
//2 Need to de-serialize data which has been serialized
}
我知道如果我有一个要序列化的表单,我可以使用jquery#serializeArray()
:
$( "form" ).submit(function( event ) {
console.log( $( this ).serializeArray() );
event.preventDefault();
});
但是我没有来自服务器的表单和数据(我猜)与jquery
的serializeArray
函数无关。那么我该怎么做呢?最好的方法之一是什么?
最好不要使用除jquery之外的任何第三方库,甚至根本不使用jquery。
最佳答案
将 JS 对象序列化为 JSON 的常用方法是通过 JSON.stringify()
。
另一种方法是通过 JSON.parse()
。
o={"firstName":"john","lastName":"doe"};
console.log(JSON.stringify(o));
console.log(JSON.parse(JSON.stringify(o)));
这是一个Fiddle .
.serializeArray() jQuery 只是一个简洁的帮助函数来序列化表单数据。
它从头开始构建其对象。这是source为了那个原因。
如果您想以 JSON
形式提交数据,您只需
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(data),
success: success,
dataType: dataType
});
jQuery.post()之后免费.
关于javascript - 序列化和反序列化数组(没有jquery?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24383980/