0

我正在尝试将复杂的 json 对象发布到 ajax jquery,但如果不将其转换为以“0”、“1”... 作为键的关联数组,似乎不可能保留一个简单的数组。

要求:

var dimension_set = [{ 'x': 1, 'z': 2, 'y': 3 }, { 'x': 4, 'z': 5, 'y': 6 }];
var parameters = { "dimension_set": dimension_set };
jQuery.ajax({ type: 'POST', url: WEBSERVICE_URL, data: parameters });

参数:

dimension_set[0][x]:1
dimension_set[0][z]:2
dimension_set[0][y]:3
dimension_set[1][x]:4
dimension_set[1][z]:5
dimension_set[1][y]:6

虽然我想要这样:

参数:

dimension_set[][x]:1
dimension_set[][z]:2
dimension_set[][y]:3
dimension_set[][x]:4
dimension_set[][z]:5
dimension_set[][y]:6

有没有办法得到这个?


注意:通过 curl 或 http 表单是可行的。要求:

curl -X POST WEBSERVICE_URL -F "dimension_set[][x]=1" -F "dimension_set[][y]=2" -F "dimension_set[][z]=3" -F "dimension_set[][x]=4" -F "dimension_set[][y]=5" -F "dimension_set[][z]=6"

服务器端打印:

  Parameters: {"dimension_set"=>[{"x"=>"1", "y"=>"2", "z"=>"3"}, {"x"=>"4", "y"=>"5", "z"=>"6"}]}
4

1 回答 1

0

这似乎是一个jquery“功能”。在本文档中: http: //api.jquery.com/jQuery.param/ 见最后一行:

$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"

显然,我想要的(参数数组'd'中没有索引)对于复杂对象是不可能的,仅适用于整数!

于 2013-04-30T13:08:31.350 回答