为什么jQuery.getJSON()会使我的javascript字典扁平化
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"answers"d"组合来展开的。对于高度嵌套的数据来说,这是非常令人讨厌的。
我承认,我不确定这是javascript和JSON序列化的问题,还是接收数据的网络框架Python和Pyramid的问题。在发送数据之前,我尝试过字符串化,也尝试过使用Python的json库对其进行反序列化,但只收到错误。
有什么需要帮忙的吗?
数据的发送方式是正确的。
数据字段是要通过HTTP发送的数据。如果您通过HTTPget发送,您将在查询字符串中看到参数。
myurl?a=1&b%5Bc%5D=2&b%5Bd%5D=3
无标题URL:
myurl?a=1&b[c]=2&b[d]=3
如果你想将JSON发送到服务器,你需要将其字符串化。使用JSON.stringify(),你需要包含一个JSON库来支持IE8之前的版本。
您需要将字符串化的数据分配给一个变量。
jQuery.getJSON("myurl",{data: JSON.stringify(data)}, callback);
这将在一个名为data
的变量中传递给您的服务器。
相关文章:
- 我的javascript for循环不起作用
- 如何将我的javascript库公开给其他客户端使用
- 可以Resharper在我的javascript函数声明中添加分号
- 为什么我的JavaScript堆栈排序函数不起作用
- 页面在我的javascript执行后重新加载,我不希望它这样做
- MVC正在忽略我的Javascript文件
- 为什么我的javascript程序没有将其转换为整数而不是字符串
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 我的javascript太慢了
- 由于某种原因,我的JavaScript函数无法工作
- 为什么我的javascript脚本在页面加载时运行,而不是使用onclick
- 我的Javascript代码出错
- 为什么我的javascript和jquery源文件始终不加载
- AJAX:为什么不是't我的javascript与内容一起加载
- 为什么不是't我的javascript向Project Euler返回正确答案's排名第一
- 为什么当我在带有锚点的页面之间移动时,Rails不重新加载我的javascript文件
- Num doenst在我的javascript中工作
- 在我的JavaScript模块中绑定一个点击事件
- 为什么我的JavaScript函数没有返回选中的数组值
- 使用Ajax将我的Javascript变量传递给PHP