我正在为 Django 开发一个 Ajax 查询并且工作正常,返回正确的值但是当我想访问信息时我得到这个错误:
SyntaxError: missing name after . operator
我在 python 文件中用这些行返回了信息查询:
attributes = MyModel._meta.get_fields()
objects = MyModel.objects.all()
data = serializers.serialize('json', objects, fields=(attributes[1].name))
print(data)
return HttpResponse(data, content_type='application/json')
打印(数据)输出:
[{
"model": "contenttypes.contenttype",
"pk": 11,
"fields": {
"model": "accountingseat"}
},
{
"model": "contenttypes.contenttype",
"pk": 12,
"fields": {
"model": "bill"
}
}]
javascript 文件:
function functionName(param) {
for (var i = 0; i < param.length; i++) {
console.log(param[i]);
console.log(param[i].pk);
var fields = param[i]['fields'];
for (var x = 0; x < fields.length; x++) {
console.log(fields.[x]); //error line
}
}
}
console.log() 输出:
Object { model: "general.module", pk: 1, fields: { name: "General" } }
问题是我无法使用 name 进行访问,因为每个模型中的属性名称都在变化。
我如何访问字段?提前致谢。
最佳答案
如果我正确理解你的问题,那么可以使用 Object.values()
解决这个问题,如下所示:
function functionName(param) {
for (var i = 0; i < param.length; i++) {
console.log(param[i]);
console.log(param[i].pk);
var fields = param[i]['fields'];
// Object.values throws expection if undefined passed so check this first
if(fields) {
// Access the values of the fields object if valid
var fieldsValues = Object.values(fields);
for (var x = 0; x < fieldsValues.length; x++) {
console.log(fieldsValues[x]);
}
}
}
}
关于javascript - 如何在 JS 中遍历 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527578/