我有这个swf(flash)文件,它提供了需要发送到服务器的json。
我写了一个非常简单的jQuery:
function submitForm(swf_json) {
$('#swfjson').val(swf_json); #swfjson is an input of type hidden
$('#titleForm').submit();
}
并且swf将调用上面的submitForm,我像往常一样在django中收到request.POST。
但是,django正在将swf_json
解释为字符串"Object object"
>>>type(request.POST['swfjson'])
<type 'unicode'>
当然我可以将json作为字符串传递给view函数。对我来说似乎不太好。将json对象传递给django视图的任何其他方式?
答案 0 :(得分:3)
您必须首先使用诸如https://github.com/douglascrockford/JSON-js之类的库将 JavaScript对象“序列化”为 JSON字符串(JQuery中没有适当的功能。 )
答案 1 :(得分:1)
尝试jQuery函数post
$.post("your/url/",
{"id":id},
function(data){},
"json");
答案 2 :(得分:1)
当然django会看到字符串“Object object”。那令人兴奋的是jQuery写入输入字段。随后提交的内容。 (Demo)
swf_json
参数是javascript的对象。如果你想将它作为字符串提交,我建议稍微修改swf,以便它将字符串传递给你的函数而不是json对象。假设您通过字符串连接构造json,只需在结束时添加额外的引号,然后在调用submitForm
之前添加
而不是
{
"firstName": "John",
"lastName": "Smith"
} //json object
试试这个
'{
"firstName": "John",
"lastName": "Smith"
}' //string
如果我没记错,https://github.com/douglascrockford/JSON-js/blob/master/json2.js允许在json和字符串之间进行转换
答案 3 :(得分:0)
作为jitter答案的替代方法,为什么不简单地使用Python的json library解析json对象。这样您就不需要手动解析字符串。作为一个额外的奖励,如果您的客户决定通过json对象传递多个值,它将更具未来性。