我有一个发送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();
});
但是我没有来自服务器的表单和数据(我猜)与serializeArray
的{{1}}函数无关。那我该怎么办呢?什么是最好的方法之一?
最好不要使用除jquery之外的任何第三方库,甚至根本不使用jquery。
答案 0 :(得分:1)
将JS对象序列化为JSON的常用方法是通过JSON.stringify()
。
另一种方法是通过JSON.parse()
。
o={"firstName":"john","lastName":"doe"};
console.log(JSON.stringify(o));
console.log(JSON.parse(JSON.stringify(o)));
这是Fiddle。
来自jQuery的 .serializeArray()只是一个整齐的辅助函数来序列化表单数据。
它从头开始构建对象。这是source。
如果您想以JSON
的身份提交数据,只需
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(data),
success: success,
dataType: dataType
});
jQuery.post()之后免费。