javascript - 如何在 JS 中遍历 JSON

标签 javascript json ajax django

我正在为 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/

相关文章:

javascript - jquery 基于另一个输入禁用一个输入

php - Chart.js、PHP 和 JSON 循环问题

python - 如何在 Python 中解析 JSON 中的值

json - 检查 json 数组中是否存在值

javascript - 通过ajax发送的表单的html,jquery自动为其添加结束标记,所以现在表单不起作用

javascript - XmlHttpObject 不改变它的 readyState

javascript - Jquery each() : variable in callback always has last value?

javascript - 取消选择切换单击时突出显示的区域

javascript - 禁止用户更改浏览器选项卡

javascript - Ajax 响应包含页面的源代码而不是页面的最终内容