我正在使用 Django 并嘗試直接使用 javascript 獲取數據。這里有一些代碼。在 idx_map.html 中,JS 部分是這樣的: var act = '{{ activities_json }}'; document.getElementById("json").innerHTML = act[0]; var obj = JSON.parse(act); document.getElementById("demo").innerHTML = 1;我試圖找到錯誤,所以我把一些代碼輸出到頁面的行。問題是JSON.parse()線路。如果我注釋該行,我可以在我的 HTML 頁面中看到 [ 和 1,這意味著還沒有錯誤。但是如果我取消注釋該JSON.parse()行,我就看不到 1 了,這表明JSON.parse()代碼有一些錯誤。但我沒有發現任何錯誤。有人可以幫我嗎?在views.py 中,我將對象序列化為一個json 文件。代碼是:def map(request):activities_json = serializers.serialize("json", Activities.objects.all())context = { "activities": Activities.objects.all(), "activities_json": activities_json,}return render(request, "CS_Activities/idx_map.html", context)所以行為應該是這樣的(作為一個字符串?):[ {"model": "CS_Activities.activities", "pk": 1, "fields": {"act_name": "gun shot", "location": "York Universitty", "loc_lat": 43.76776, "loc_long": -79.50297, "time": "2018-11-05T20:25:08Z", "description": "a people dead"}}, {"model": "CS_Activities.activities", "pk": 2, "fields": {"act_name": "another gun shot", "location": "York Village", "loc_lat": 43.76, "loc_long": -79.5, "time": "2018-11-05T22:35:06Z", "description": "A person shot dead while walking"}}]更新:在 idx_map.html 中,如果我只是將 var act 替換為長字符串,則不會出現錯誤。所以我認為我的問題是如何從 Django 數據庫中以 json 文件格式檢索數據。
1 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
您需要使用safewhich 將字符串(在本例中為 JSON)標記為在輸出之前不需要進一步的 HTML 轉義。
var act = '{{ activities_json|safe }}';
這部分代碼:
document.getElementById("json").innerHTML = act[0];
只獲取字符串的第一個元素,即 [.
這部分代碼
var obj = JSON.parse(act);
返回錯誤,因為您之前沒有使用safe過并且引用 (")"e;與模板中一樣輸出,這是無效的。我想您想要這樣的東西:
var act = '{{ activities_json|safe }}';
var lat = 43.767760;
var lng = -79.502970;
var latLng = {lat: lat, lng: lng};
var obj = JSON.parse(act);
document.getElementById("json").innerHTML = obj[0];
現在obj[0]將返回第一個 JSON 元素,但我不確定您想用它做什么。
添加回答
舉報
0/150
提交
取消