【问题标题】:Remove \" characters while returning json返回 json 时删除 \" 字符
【发布时间】:2013-09-26 16:51:27
【问题描述】:

我通过 Python/Django 将数据作为 JSON 返回。

我使用了以下代码:

jsonObject = serializers.serialize('json', object, fields=('value', 'record_time'))
return HttpResponse(json.dumps(jsonObject), mimetype="application/json")

问题是我得到如下响应:

"[{\"pk\": null, \"model\": \"model.table\", \"fields\": {\"record_time\": \"2009-11-18T22:45:44Z\", \"value\": 0.6533125480476399}}, {\"pk\": null, \"model\": \"model.table\", \"fields\": {\"record_time\": \"2009-11-19T15:02:15Z\", \"value\": 0.4386133754377899}}]"

我应该以以下格式获取它:

"[
  {
   "pk": null, 
   "model": "model.table", 
   "fields": 
      {
        "record_time": "2009-11-18T22:45:44Z", 
        "value": 0.6533125480476399
      }
  }, 
  {
    "pk": null, 
    "model": "model.table", 
    "fields": 
      {
        "record_time": "2009-11-19T15:02:15Z", 
        "value": 0.4386133754377899
      }
  }
]"

我哪里错了?

【问题讨论】:

  • 返回\转义双引号"

标签: python django json


【解决方案1】:

您将对象序列化为jsonObject,但您返回原始object。只需修复它,一切都会按预期工作。

更新:

只需像这样更改您的代码:

jsonObject = serializers.serialize('json', object, fields=('value', 'record_time'))
return HttpResponse(jsonObject, mimetype="application/json")

变化是第二行的jsonObject

【讨论】:

  • 对象是一个简单的QuerySet 列表。我的表现如何?
  • Stackoverflow 不允许这么快。 :D
【解决方案2】:

您出错的地方是将 JSON 字符串的打印表示与实际字符串本身混淆。这些斜杠只是控制台,显示字符串中的双引号不是结束字符串,而是它的一部分。换句话说,你的 JSON 很好。

【讨论】:

  • 你是对的。我的 JSON 很好。问题是我在浏览器上看到了这个,而不是它的美化部分。有什么线索吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
  • 2013-01-23
  • 2022-01-19
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多