2014-01-23 61 views
0

返回ü角色,我有一個Django模型Django的AJAX查詢序列化回報

class StateCensusHistory(models.Model): 
    id = models.AutoField(primary_key = True) 
    year = models.IntegerField() 
    population = models.TextField() 
    density = models.TextField() 
    pop_change = models.TextField() 

    def __unicode__(self): 
    return "%d, %s\n" % (self.year, self.population) 

    class Meta: 
    app_label = "app" 
    db_table = "state_census_history" 

保存列表若干名單通過json.dumps(list_object)轉儲到JSON字符串的結果。該字段在通過串行器json轉換進行查詢時返回。我的問題是,由於unexpected token u,JSON.parse()拋出SyntaxError

我該如何解決這個問題,而不是修改文本字段本身?

在我的意見的文件,我得到的查詢集,並通過

return HttpResponse(json.dumps({"success" : "true", 
           "data" : serializers.serialize("json", countyData)}), 
         mimetype = "application/json") 

返回序列化的數據,並通過

var pop = JSON.parse(data[0].fields.density); 

一個例子返回的字符串值被解析解析是

{\"density\": \"{u'Penobscot': 40.75222856500098, u'Sagadahoc': 
122.27083333333333, u'Lincoln': 67.97977755308392, u'Kennebec': 
123.12237174095878, u'Waldo': 48.02117802779616, u'Cumberland': 
288.9285325791363, u'Piscataquis': 3.9373586457405247, u'Hancock': 
30.698239582715903, u'Washington': 12.368718341168325, u'Aroostook': 
10.827378163074039, u'York': 183.47612497543722, u'Franklin': 
16.89330963710371, u'Oxford': 25.171240748402518, u'Somerset': 
12.425648288323485, u'Knox': 108.48302300109529, u'Androscoggin': 
208.75502815768303}\"} 

回答

3

您正在對數據進行兩次編碼。它已經是從串口調用的json,不需要調用json.dumps。

+0

我沒有序列化數據兩次。數據庫字段包含前一段時間調用的'json.dumps'調用的結果。整個模型實例將被序列化以響應來自瀏覽器的查詢。 – Jason

+1

我不明白你的意見。你確實連續兩次,因爲我說的原因。 –

+0

解析初始數據時,我創建了多個字典結構來保存多個操作的結果。那些字典結構被解析成json字符串並保存爲文本字段。我的目標是將整個模型作爲json對象返回 – Jason