为什么是jQuery.getJSON()压平我的javascript字典?

2024-06-28 19:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在通过jQuery.getJSON()方法到我的服务器。我用jscript声明了这本词典:

data = {'a': 1, b:{'c':2, 'd':3}};

当我打电话给:

^{pr2}$

服务器接收到具有以下值的字典:

{'a':1, 'b[c]':2, 'b[d]':3}.

注意,子字典是通过将“b”键与子键“c”和“d”组合而成的。对于高度嵌套的数据来说,这是非常令人讨厌的。在

我承认,我不确定这是javascript和JSON序列化的问题,还是接收数据的web框架Python和Pyramid的问题。我尝试过在发送数据之前进行字符串化,并使用Python的json库对其进行反序列化,但只得到了错误。在

有什么帮助吗?在


Tags: 数据方法服务器声明data字典高度序列化
1条回答
网友
1楼 · 发布于 2024-06-28 19:20:33

发送数据的方式是正确的。在

数据字段是要通过HTTP发送的数据。如果通过httpget发送,您将看到查询字符串中的参数。在

myurl?a=1&b%5Bc%5D=2&b%5Bd%5D=3

未转义的URL:

^{pr2}$

如果要将JSON发送到服务器,则需要对其进行stringify。使用JSON.stringify()您将需要包含一个JSON库来支持pre-IE8。在

您需要将字符串化的数据分配给一个变量。在

jQuery.getJSON("myurl",{data: JSON.stringify(data)}, callback);

这将通过一个名为data的变量传递给服务器。在

相关问题 更多 >