javascript - Python 中的 jQuery $.param'ed 字符串解析(应用引擎)

标签 javascript jquery python google-app-engine

我有一个 JavaScript 字典,我想将其传递给 App Engine 上的 Python 应用程序、放入数据存储区、从数据存储区检索并最终以 JSON 形式返回。正确的做法是什么?

说它看起来像这样:

dict = {'box': 'huge',
        'crayons': [{ 'color': 'blue', 'l': 12 },
                    { 'color': 'red', 'l': 2 },
                    { 'color': 'yellow', 'l': 7 }]};

我使用 jQuery 序列化它:

data = $.param(dict);

得到类似的东西:

box=huge&crayons%5B0%5D%5Bcolor%5D=blue&crayons%5B0%5D%5Bl%5D=12&crayons%5B1%5D%5Bcolor%5D=red&crayons%5B1%5D%5Bl%5D=2&crayons%5B2%5D%5Bcolor%5D=yellow&crayons%5B2%5D%5Bl%5D=7

我使用 $.ajax 将其发送到应用引擎(Python、Flask),并将其作为序列化字符串放入数据存储区。稍后我想将它反序列化为 Python 字典并使用 simplejson 将其转换为 JSON。

虽然我不知道如何将它反序列化为 Python 字典。

编辑:或者我做错了,需要以不同的方式将字典传递给应用引擎?

最佳答案

如果您使用 $.param,您在解析数据时会丢失类型信息。在您的示例中,数字 12 变为字符串“12”。 bool 值 true 也会变成字符串“true”。当您从服务器取回数据时,这可能会导致问题。

如果维护类型信息对您很重要,您可能希望在将对象发送到应用引擎 (https://github.com/douglascrockford/JSON-js) 之前对对象进行 json 编码。然后,您可以直接将数据放入数据存储区并根据要求返回。

关于javascript - Python 中的 jQuery $.param'ed 字符串解析(应用引擎),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4979827/

相关文章:

javascript - 不再显示此页面(JQUERY cookie)

javascript - 涉及 post json 调用的同步函数调用,其中一个函数应该在另一个函数成功后成功

javascript - 如何使用 Angular JS 克隆 html

javascript - 使用 JavaScript 在复选框选中和取消选中时从全局数组中删除特定元素

python - 在 Django 应用程序中测试 View

python - 使用 pyarrow 在工作人员之间共享对象

python - Tornado Restful 处理程序类

javascript - SVG 属性和样式之间是否存在性能差异?

javascript - 单击时将选项移动到下一个选择

javascript - Jquery Ajax beforeSend 加载动画