简体   繁体   English

从 json 响应中遍历字典

[英]Iterating through the dictionary from json response

My json view:我的 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})

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

Then i have a dict like: "Institution name": Institution Id然后我有一个像这样的字典:“机构名称”:机构 ID

How can i iterate through it in javascript and use InnerHTML to put each of institution with its name and ID into a DIV?我如何在 javascript 中遍历它并使用 InnerHTML 将每个机构及其名称和 ID 放入 DIV?

You can use Object.entries for iterate using usual loop您可以使用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/>');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM