2014-02-24 149 views
0

我正在用dangang使用mongodb并且想要在mongodb中存储json对象。这里是我的代码Django JSON字符串到json对象

型号

class Data(models.Model): 
    deviceId = models.CharField(max_length=200) 
    payload = models.CharField(max_length=2000) 

查看保存数据

deviceId = request.POST.get('deviceId') 
payload = request.POST.get('payload') 
data = Data.objects.create(deviceId=deviceId, payload=payload); 
data.save() 

查看获取数据

data = json.dumps(list(Data.objects.all().values('deviceId','payload'))) 

响应

{ 
    "data":{ 
    "payloads":"{name:\"xyz\"}" 
    "id":"xxxxx" 
    }, 
} 

问题是与"payloads":"{name:\"xyz\"}"。这是一个字符串而不是json Object。我想要"payloads":"{name:"xyz"}"。如何将它转换成Django中的json对象。有没有反正将所有的数据集转换成json对象,而不是从数据集迭代每个对象

回答

1

我认为你应该能够删除脚本的json.dumps部分。这是一个将有效的JSON对象转换为字符串的python命令!

data = list(Data.objects.all().values('deviceId','payload')) 
+0

不,实际上它返回一个列表,我希望响应json –

0

要存储JSON,我建议使用JSONField。

from jsonfield import JSONField 
class Data(models.Model): 
    deviceId = models.CharField(max_length=200) 
    payload = models.JSONField(max_length=2000)