[英]Why is jQuery.getJSON() flattening my javascript dictionary?
通过jQuery.getJSON()方法将javascript字典传输到服务器时,我遇到了一个大问题。 我有在jscript中声明的这本字典:
data = {'a': 1, b:{'c':2, 'd':3}};
我打电话的时候:
jQuery.getJSON("myurl", data, callback)
服务器接收具有以下值的字典:
{'a':1, 'b[c]':2, 'b[d]':3}.
请注意,通过将“ b”键与子键“ c”和“ d”组合在一起,对子词典进行了扁平化处理。 这对于高度嵌套的数据来说非常令人讨厌。
我承认我不确定这是否与javascript和JSON序列化有关,还是与Python和Pyramid(接收数据的网络框架)有关。 我曾尝试在发送数据之前进行字符串化,以及使用Python的json库反序列化它,但我只会遇到错误。
有什么帮助吗?
数据发送的方式是正确的。
数据字段旨在通过HTTP发送数据。 如果通过HTTP get发送,您将在查询字符串中看到参数。
myurl?a=1&b%5Bc%5D=2&b%5Bd%5D=3
未转义的网址:
myurl?a=1&b[c]=2&b[d]=3
如果要将JSON发送到服务器,则需要对其进行字符串化。 使用JSON.stringify()您需要包含一个JSON库以支持IE8之前的版本。
您需要将字符串化数据分配给变量。
jQuery.getJSON("myurl",{data: JSON.stringify(data)}, callback);
这将在名为data
的变量中传递给您的服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.