jquery ajax简单数组作为参数转换为关联数组

时间:2013-04-30 09:38:22

标签: javascript jquery json

我试图将一个复杂的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"}]}

1 个答案:

答案 0 :(得分: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'中没有索引)对于复杂对象是不可能的,只对整数有效!