Javascript 序列化和反序列化数组(不带jquery?)

Javascript 序列化和反序列化数组(不带jquery?),javascript,jquery,ajax,serialization,Javascript,Jquery,Ajax,Serialization,我有一个发送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 } 我知道如果我有一个要序列化的表单,我可以使用jque

我有一个发送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()

请参阅MDN以了解和

这是一本书

from jQuery只是一个用于序列化表单数据的整洁助手函数。 它从地面开始构建其对象。这是解决这个问题的方法。 如果您想以
JSON
的形式提交数据,只需

$.ajax({
  type: "POST",
  url: url,
  data: JSON.stringify(data),
  success: success,
  dataType: dataType
});   

之后免费。

我想阅读文档会有帮助。@Teemu,不是真的。你的意思是我可以将“数据”按原样写入html页面吗?我应该将其序列化到哪里(当我在“完成”回调中收到数据时):到div或某个js变量中?序列化的需要是,通过连接获取js对象。因此,如果要将其发布到服务器,则需要对其进行序列化。如果您从服务器接收到它,那么它已经被序列化了——假设您使用jQuery来完成这项工作。你只需要使用结果。当您收到数据时,这取决于您将如何处理它。我收到数据,并且希望从.done(…)回调外部访问结果,换句话说,我希望传递结果。您面临的问题是闭包:您将函数传递到jQuery中,您无法访问该函数的返回值。有几种可能的解决方案:1)回调。在闭包中,您从闭包的“外部”调用函数,并将“数据”作为参数2)您可以将其分配给闭包外部的变量,但存在不知道变量何时设置的问题。为了避免这种情况,您可以使用事件机制。
$.ajax({
  type: "POST",
  url: url,
  data: JSON.stringify(data),
  success: success,
  dataType: dataType
});