【问题标题】:Iterating through the dictionary from json response从 json 响应中遍历字典
【发布时间】:2020-11-30 23:04:38
【问题描述】:

我的 json 视图:

def validate_categories(request):
    obj = request.GET.get('categories', '')
    import json
    obj: list[int] = json.loads(obj)
    qs = Institution.objects.filter(categories__in=obj)

    return JsonResponse({institution.name: institution.id for institution in qs})

我的阿贾克斯:

  var catArrIdString = JSON.stringify(catArrIdInt)
  if (catArrId.length > 0) {
    $.ajax({
      type: "GET",
      url: "/ajax/validate_categories/",
      dataType: "json",
      data: {
        "categories": catArrIdString
      }
    }).done(function(institutionsByName) {
      for (const [key, value] in Object.entries(institutionsByName)){
        console.log(`${key}: ${value}`);
      }
    })
    .fail(function(e) {
      alert( "error" );
      console.log(e)
    })
  }

然后我有一个像这样的字典: “机构名称”:机构 ID

如何在 javascript 中遍历它并使用 InnerHTML 将每个机构及其名称和 ID 放入 DIV?

【问题讨论】:

  • 最好编辑你的问题,而不是在答案中写澄清
  • 我已经做到了。
  • 看起来您的字典是没有特定键的简单值数组。你能完整显示console.log(institutionsByName)吗?
  • 然后列出所有的字典: Object { "Schronisko dla bezdomnych": 2, "Org. pozarządowa D": 7}
  • 哦,你几乎没问题,只需使用for ... of 而不是for ... in,你的示例就可以了

标签: javascript python json ajax


【解决方案1】:

您可以使用Object.entries 使用常规循环进行迭代

const dictionary = {
"name1": 1,
"name2": 2,
"name3": 3,
};

document.body.innerHTML = Object.entries(dictionary)
  .map(([key,val]) => `<div>${key}: ${val}</div>`)
  .join('<br/>');

【讨论】:

  • 请不要只使用外部链接来回答问题。解释用户可以做些什么来解决问题,并在报告外部网站的一些信息时引用它们
  • @RiccardoBucco 我编辑了我的答案,现在更适合你吗?
  • 您报告了一些代码,但我认为您仍然没有解决 OP 问题。您报告了一些通用代码,但没有解决具体问题。你是否?尝试更具体并回答问题
  • @RiccardoBucco 问题是:如何在 javascript 中遍历字典并使用 InnerHTML 将每个机构及其名称和 ID 放入 DIV?看:迭代 - 检查,javascript - 检查,innerHTML - 检查(我知道很少有其他方法),把每个机构的 ID - 检查,DIV - 检查。看起来我确实完全解决了具体问题。通常我不会为没有所需 html 输出示例的问题编写代码,但我专门为您编写了小示例
猜你喜欢
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
相关资源
最近更新 更多