我将以下字符串发送到django模板。
<script>
var data = '[{"a": 0}, {"b": 1}]'
</script>
["a", "b"]
答案 0 :(得分:1)
只需将其解析为JSON:
var obj = JSON.parse(data);
obj[0].a // access to a
obj[1].b // access to b
答案 1 :(得分:1)
您需要将python对象转换为javascript可以理解的格式,即json。为此,请在视图中使用simplejson
:
from django.utils import simplejson
from django.shortcuts import render
def some_view(request):
...
python_data = [
{ 'a' : 'foo', 'b' : 'bar' },
...
]
json_data = simplejson.dumps(python_data)
render(request, "some_template.html", { 'data' : json_data })
并在您的模板中:
<script>
var data = {{ data|safe }}
</script>
(Simplejson适合转换普通的python对象。如果你想转换QuerySet,你需要使用Django的serialisers)
答案 2 :(得分:0)
为什么不返回JSON?
from django.utils import simplejson
def function(request):
if not request.is_ajax():
raise Http404
data = list(
dict(
a=0,
b=1
)
)
return HttpResponse(simplejson.dumps(data), mimetype='application/json')
javascript (在此示例中使用jquery)
function getData(){
$.ajax({
type: "GET",
url: "/your/url/to/function/",
success: function(data){
return data;
}
});
}
var data = getData();
答案 3 :(得分:0)
如何使用javascript 获取[“a”,“b”]键
var arrMain = [{"a": 2}, {"b": 3}],
arrKey = [];
for (key in arrMain) {
if (arrMain.hasOwnProperty(key)) {
arrKey.push(Object.keys(arrMain[key])[0]);
}
}
console.log(JSON.stringify(arrKey)); // returns ["a","b"]
此外,我需要一个javascript函数来检索给定键的值。
function returnValueByKey(arrMain, arrKey, lookupKey) {
for (key in arrKey) {
if (arrKey.hasOwnProperty(key) && arrKey[key] === lookupKey) {
return arrMain[key][arrKey[key]];
}
}
}
console.log(returnValueByKey(arrMain, arrKey, 'a')); // returns 2