0

我通过 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
      }
  }
]"

我在哪里错了?

4

2 回答 2

1

您将对象序列化为jsonObject,但返回原始object. 只要解决这个问题,一切都应该按预期工作。

更新:

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

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

变化是jsonObject在第二行。

于 2013-09-26T08:36:58.387 回答
0

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

于 2013-09-26T08:38:13.930 回答