首页 > 解决方案 > 如何将字典值分配给 javascript 变量(JSON 中返回的 jQuery / AJAX API 调用)

问题描述

我有一个运行良好的 AJAX 请求,它从以 JSON 格式返回数据的第三方 API 查询数据。我现在想将返回的 JSON 数据中的值分配给 javascript 变量,以便在更新前端之前在我的 AJAX 成功函数中对数据本身进行进一步操作。

在下面的示例中,我想将 key 的值分配name给我的 Javascriptteam变量。

实现这一目标的最佳方法是什么?

这是返回的结构:

{ 
   "api":{ 
      "results":1,
      "teams":[ 
         { 
            "team_id":66,
            "name":"Barcelona",
            "code":null,
            "logo":"Not available in Demo",
            "country":"Spain",
            "founded":1899,
            "venue_name":"Camp Nou",
            "venue_surface":"grass",
            "venue_address":"Carrer d'Ar\u00edstides Maillol",
            "venue_city":"Barcelona",
            "venue_capacity":99787
         }
      ],

这是我的 AJAX 请求:

$('ul.subbar li a').on('click', function(e) {
e.preventDefault();
var team_id = $(this).attr("id");
console.log(team_id);
$.ajax({
  method: "GET",
  dataType: "json",
  url: "https://cors-anywhere.herokuapp.com/http://www.api-football.com/demo/api/v2/teams/team/" + team_id,
  success: function(response) {
    var team_data = response
    console.log(team_data)

    team = // how to assign team name from API callback to variable

    console.log(team)

    $("#selectedClub").html(response);

    }
  });
});

标签: javascriptjqueryjsonajax

解决方案


您可以使用点表示法在对象中导航

team_data.api.teams[0].name //output: "barcelona"

在您的示例中,里面只有一个项目teams array,因此上面的示例应该可以正常工作,但是让我们假设在您的响应中有超过 1 个团队,teams那么您可以执行以下操作:

var teamList = [];
$.each(team_data.api.teams, function(index, team){
    teamList.push(team.name);
})

它会给出array你的所有团队名称ajax response


推荐阅读