2014-02-24 256 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)