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

Mat*_*hew 4 ajax jquery serialization json

我有一个对象,我想用我的jquery.ajax函数发送,但我找不到任何将它转换为我需要的序列化格式的东西.

$.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"
  }
]
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 7

所以我会把我的评论作为答案.如果要将数组传输到服务器端,可以将其转换为JSON(至少这将是最简单的方式).

用途JSON:

$.ajax({
  type: 'post',
  url: 'www.example.com',
  data: {paramter: JSON.stringify(MyObject)},
  success: function(data) {
    $('.data').html(data)
  }
});
Run Code Online (Sandbox Code Playgroud)

parameter您要使用的POST参数的名称在哪里.

JSON.stringify 会给你一个字符串:

'[{"UserId":"2","UserLevel":"5","FirstName":"Matthew"},{"UserId":"4","UserLevel":"5","FirstName":"Craig"}]'
Run Code Online (Sandbox Code Playgroud)

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

$data = json_decode($_POST['parameter']);
Run Code Online (Sandbox Code Playgroud)

会给你一个对象数组:

Array
(
    [0] => stdClass Object
        (
            [UserId] => 2
            [UserLevel] => 5
            [FirstName] => Matthew
        )

    [1] => stdClass Object
        (
            [UserId] => 4
            [UserLevel] => 5
            [FirstName] => Craig
        ) 
)
Run Code Online (Sandbox Code Playgroud)

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