从json响应遍历字典

时间:2020-08-11 09:35:39

标签: javascript python json ajax

我的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})

我的Ajax:

  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?

1 个答案:

答案 0 :(得分: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/>');