首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将对象转换为jquery.ajax函数中数据的序列化语法?

如何将对象转换为jquery.ajax函数中数据的序列化语法?
EN

Stack Overflow用户
提问于 2011-01-18 04:44:36
回答 2查看 10.8K关注 0票数 4

我有一个想要随jquery.ajax函数一起发送的对象,但是我找不到任何可以将其转换为我需要的序列化格式的东西。

代码语言:javascript
复制
$.ajax({
  type: 'post',
  url: 'www.example.com',
  data: MyObject,
  success: function(data) {
    $('.data').html(data)
  }
})

MyObject = [
  {
    "UserId": "2",
    "UserLevel": "5",
    "FirstName": "Matthew"
  },
  {
    "UserId": "4",
    "UserLevel": "5",
    "FirstName": "Craig"
  }
]

Serialized_format = [
  {
    "name": "UserId",
    "value": "5"
  },
  {
    "name": "UserLevel",
    "value": "4"
  },
  {
    "name": "FirstName",
    "value": "Craig"
  }
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-18 04:53:38

因此,我将把我的评论作为答案。如果您想将数组传输到服务器端,可以将其转换为JSON (至少这是imo最简单的方法)。

使用JSON

代码语言:javascript
复制
$.ajax({
  type: 'post',
  url: 'www.example.com',
  data: {paramter: JSON.stringify(MyObject)},
  success: function(data) {
    $('.data').html(data)
  }
});

其中parameter是要使用的POST参数的名称。

JSON.stringify会给你一个类似这样的字符串:

代码语言:javascript
复制
'[{"UserId":"2","UserLevel":"5","FirstName":"Matthew"},{"UserId":"4","UserLevel":"5","FirstName":"Craig"}]'

在服务器端检索,例如使用PHP和json_decode

代码语言:javascript
复制
$data = json_decode($_POST['parameter']);

会给你返回一个对象数组:

代码语言:javascript
复制
Array
(
    [0] => stdClass Object
        (
            [UserId] => 2
            [UserLevel] => 5
            [FirstName] => Matthew
        )

    [1] => stdClass Object
        (
            [UserId] => 4
            [UserLevel] => 5
            [FirstName] => Craig
        ) 
)

我还建议将MyObject重命名为有意义的内容,以反映变量的内容。实际上,你有一个数组,而不是一个对象(是的,我知道数组也是对象)。

票数 7
EN

Stack Overflow用户

发布于 2011-01-18 04:48:52

你不需要序列化,类型为' POST‘的.ajax在'url’参数中将"MyObject“的属性发送给脚本,就像html POST一样。

例如,在PHP中:使用:

代码语言:javascript
复制
$.ajax({
  type: 'post',
  dataType: 'json',
  url: 'www.example.com/receive.php',
  data: {
      param1: 'test',
      param2: 123456
  },
  success: function(data) {
    $('.data').html(data)
  }
})

在receive.php中,我有$_POST['param1']$_POST['param2']

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4717704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档