【问题标题】:Why I have many "\\" after submit django form?为什么提交 django 表单后我有很多“\\”?
【发布时间】:2014-02-17 13:36:31
【问题描述】:

我有来自模型的 django 表单

参数 = fields.JSONField(blank=True, null=True)

键、值 - 输入字段

提交到数据库后可以看到:

""\"\\"{\\\\"接口\\\\": \\\\"USB, PS/2\\\\", \\\\"颜色\\\\" : \\\\"黑色\\\\", \\\\"保修\\\\": \\\\"24\\\\", \\\\"dpi\\\\": \ \\\"800\\\\"}\\"\"""

为什么我有很多“\\”符号?

非常感谢你。

【问题讨论】:

  • 你的 PostgreSQL 和 Django 版本是什么?

标签: django json postgresql


【解决方案1】:

您的 JSON 已通过多次反斜杠转义。

去掉外引号:

"\"\\"{\\\\"interface\\\\": \\\\"USB, PS/2\\\\", \\\\"color\\\\": \\\\"black\\\\", \\\\"warranty\\\\": \\\\"24\\\\", \\\\"dpi\\\\": \\\\"800\\\\"}\\"\""

删除一级反斜杠转义和外引号:

"\"{\\"interface\\": \\"USB, PS/2\\", \\"color\\": \\"black\\", \\"warranty\\": \\"24\\", \\"dpi\\": \\"800\\"}\""

移除另一层反斜杠转义和外引号:

"{\"interface\": \"USB, PS/2\", \"color\": \"black\", \"warranty\": \"24\", \"dpi\": \"800\"}"

最后一次传递给了我们实际的 JSON:

{"interface": "USB, PS/2", "color": "black", "warranty": "24", "dpi": "800"}

所以真正的问题是生成这个的代码是什么?你为什么要从表单中得到 JSON?

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 2019-02-04
    • 2014-04-13
    • 1970-01-01
    相关资源
    最近更新 更多