我正在使用 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
提交
取消