我有一个角度应用程序,它将json数据发送到django后端。 django应用程序将json数据保存到数据库中,然后将其拉出以将其发送回角度应用程序。我无法让整个链条正常工作。
这是将json数据传递回模板的视图。
def myview(request, uid):
formrecord = FormData.objects.get(someid = uid)
return render(request, 'myview.html', 'formdata':formrecord.data})
以上是在调用上面render()
之前的formrecord.data:
(Pdb) formrecord.data
u'{"user":{"firstName":"Bob","lastName":"Henderson"}}'
这是我的模板
<script>
var mydata ={{ formdata }};
mydata = JSON.parse(mydata);
console.log(mydata);
</script>
以下是渲染的内容:
var mydata ={"user":{"firstName":"Bob","lastName":"Henderson"}};
JSON.parse(mydata)在JS方面给出了语法错误。我如何让JS正确地将字符串解析为JS对象?
答案 0 :(得分:0)
mydata
的值不是字符串,您不需要解析它,因为它已经是有效的JS对象:var mydata ={"user":{"firstName":"Bob","lastName":"Henderson",}};
您可以继续访问以下属性:mydata.user.firstName
此外,您应该验证您在模型中存储的JSON数据。您在上面发布的数据无效,因为在JSON中,尾随逗号是非法的。
答案 1 :(得分:0)
正如@Arsh Singh所说,formrecord.data
不是有效的json
,它对于python来说是有效的dict
,你可以尝试这样:
# views
import json
def myview(request, uid):
formrecord = FormData.objects.get(someid = uid)
jsondata = json.dumps(formrecord.data)
return render(request, 'myview.html', 'formdata':jsondata})
然后在JS块中
<script>
var mydata ={{ formdata }};
console.log(mydata);
</script>