我想将一个包含嵌套对象的 json 对象从我的客户端传递到我的服务器。
在客户端,我的数据结构如下所示:
var response = {};
response['screening'] = '1';
response['assistance'] = 'wheelchair access';
response['guests'] = {};
response['guests']['1'] = {}
response['guests']['1']['first'] = 'John'
response['guests']['1']['last'] = 'Smith'
response['guests']['2'] = {}
response['guests']['2']['first'] = 'Dave'
response['guests']['2']['last'] = 'Smith'
我的 ajax 调用如下所示:
$.ajax({
type: "POST",
url: window.location.pathname,
data: response
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
将此数据发布到使用 python 烧瓶运行的服务器后,我使用 request.form 对象检查从客户端发布的内容。我希望以相同的方式构造数据,但是,这是服务器上的输出:
ImmutableMultiDict([('guests[1][first]', u'John'), ('screening', u'2'), ('guests[2][last]', u'Smith'), ('guests[2][first]', u'Dave'), ('assistance', u'wheelchair access'), ('guests[1][last]', u'Smith')])
如您所见, response['guests'] 对象被展平,其所有子对象,例如:
'客人[2][第一]'
... 只是一个字符串,而不是其父响应 ['guests'] 的元素。
有没有更好的方法将这个数据块从我的客户端发送到我的服务器,并正确维护其结构?
谢谢!