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

标签 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();
});

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

最好不要使用除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)));   

请参阅 MDN stringifyparse

这是一个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/

相关文章:

javascript - 文本区域中的 Twitter 样式自动完成

javascript - 嵌入式视频无法以模式打开

javascript - 尝试使用 ajax 发布数据,但在添加一些字符串时似乎会中断

javascript - jQueryMobile 中的动态链接

javascript - 如何在 Angular 2 应用程序中从 TypeScript/JavaScript 中的字符串获取类?

javascript - 尝试使用 Class 在 Select 上获取下拉选项

jquery - 使用 jQuery 将默认文本更改为输入文本

javascript - 使用对象将 javascript 变量传递给 php

ajax - 选择 "Choose File"按钮后预览 ImageField

javascript - Internet Explorer 10 和更低版本的 ie 中的 javascript for 循环中的分号错误