序列化和反序列化数组(没有jquery?)

时间:2014-06-24 10:13:45

标签: 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

}

我知道如果我有一个要序列化的表单,我可以使用jquery#serializeArray()

$( "form" ).submit(function( event ) {
  console.log( $( this ).serializeArray() );
  event.preventDefault();
});

但是我没有来自服务器的表单和数据(我猜)与serializeArray的{​​{1}}函数无关。那我该怎么办呢?什么是最好的方法之一?

最好不要使用除jquery之外的任何第三方库,甚至根本不使用jquery。

1 个答案:

答案 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)));   

请参阅MDN了解stringifyparse

这是Fiddle

来自jQuery的

.serializeArray()只是一个整齐的辅助函数来序列化表单数据。 它从头开始构建对象。这是source。 如果您想以JSON的身份提交数据,只需

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

jQuery.post()之后免费。