对象数组内部的JSON访问密钥

时间:2020-04-29 00:54:51

标签: javascript json api

我正在通过以下链接访问API:https://covid19-brazil-api.now.sh/api/report/v1/brazil/20200425/

此链接的最后一部分对应于特定日期在巴西所有州的冠状病毒数据(该链接的最后一部分代表,在此情况下为04/25/2020)

我只想查看一种状态的信息,但是JSON格式化的方式有一大堆称为date的对象,所以我不能这样做: https://covid19-brazil-api.now.sh/api/report/v1/brazil/20200425/?uf='PE'

这是JSON:

// 20200428215028
// https://covid19-brazil-api.now.sh/api/report/v1/brazil/20200425/

{
  "data": [
    {
      "uid": 35,
      "uf": "SP",
      "state": "São Paulo",
      "cases": 20004,
      "deaths": 1667,
      "suspects": 5334,
      "refuses": 596,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 33,
      "uf": "RJ",
      "state": "Rio de Janeiro",
      "cases": 6828,
      "deaths": 615,
      "suspects": 1254,
      "refuses": 148,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 23,
      "uf": "CE",
      "state": "Ceará",
      "cases": 5421,
      "deaths": 310,
      "suspects": 493,
      "refuses": 89,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 26,
      "uf": "PE",
      "state": "Pernambuco",
      "cases": 4507,
      "deaths": 381,
      "suspects": 89,
      "refuses": 23,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 13,
      "uf": "AM",
      "state": "Amazonas",
      "cases": 3635,
      "deaths": 287,
      "suspects": 18,
      "refuses": 26,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 21,
      "uf": "MA",
      "state": "Maranhão",
      "cases": 2105,
      "deaths": 100,
      "suspects": 125,
      "refuses": 13,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 29,
      "uf": "BA",
      "state": "Bahia",
      "cases": 2081,
      "deaths": 70,
      "suspects": 573,
      "refuses": 36,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 32,
      "uf": "ES",
      "state": "Espírito Santo",
      "cases": 1595,
      "deaths": 47,
      "suspects": 71,
      "refuses": 21,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 15,
      "uf": "PA",
      "state": "Pará",
      "cases": 1579,
      "deaths": 86,
      "suspects": 43,
      "refuses": 23,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 31,
      "uf": "MG",
      "state": "Minas Gerais",
      "cases": 1481,
      "deaths": 58,
      "suspects": 925,
      "refuses": 104,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 42,
      "uf": "SC",
      "state": "Santa Catarina",
      "cases": 1209,
      "deaths": 42,
      "suspects": 346,
      "refuses": 47,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 41,
      "uf": "PR",
      "state": "Paraná",
      "cases": 1140,
      "deaths": 69,
      "suspects": 400,
      "refuses": 119,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 43,
      "uf": "RS",
      "state": "Rio Grande do Sul",
      "cases": 1096,
      "deaths": 34,
      "suspects": 416,
      "refuses": 330,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 53,
      "uf": "DF",
      "state": "Distrito Federal",
      "cases": 1013,
      "deaths": 26,
      "suspects": 327,
      "refuses": 107,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 24,
      "uf": "RN",
      "state": "Rio Grande do Norte",
      "cases": 781,
      "deaths": 40,
      "suspects": 108,
      "refuses": 22,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 16,
      "uf": "AP",
      "state": "Amapá",
      "cases": 685,
      "deaths": 19,
      "suspects": 15,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 52,
      "uf": "GO",
      "state": "Goiás",
      "cases": 506,
      "deaths": 25,
      "suspects": 353,
      "refuses": 55,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 27,
      "uf": "AL",
      "state": "Alagoas",
      "cases": 501,
      "deaths": 29,
      "suspects": 43,
      "refuses": 22,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 25,
      "uf": "PB",
      "state": "Paraíba",
      "cases": 447,
      "deaths": 46,
      "suspects": 85,
      "refuses": 11,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 14,
      "uf": "RR",
      "state": "Roraima",
      "cases": 345,
      "deaths": 3,
      "suspects": 9,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 11,
      "uf": "RO",
      "state": "Rondônia",
      "cases": 328,
      "deaths": 7,
      "suspects": 61,
      "refuses": 2,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 22,
      "uf": "PI",
      "state": "Piauí",
      "cases": 297,
      "deaths": 17,
      "suspects": 12,
      "refuses": 2,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 12,
      "uf": "AC",
      "state": "Acre",
      "cases": 258,
      "deaths": 11,
      "suspects": 12,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 51,
      "uf": "MT",
      "state": "Mato Grosso",
      "cases": 247,
      "deaths": 9,
      "suspects": 45,
      "refuses": 8,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 50,
      "uf": "MS",
      "state": "Mato Grosso do Sul",
      "cases": 217,
      "deaths": 7,
      "suspects": 93,
      "refuses": 26,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 28,
      "uf": "SE",
      "state": "Sergipe",
      "cases": 153,
      "deaths": 9,
      "suspects": 15,
      "refuses": 11,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 17,
      "uf": "TO",
      "state": "Tocantins",
      "cases": 50,
      "deaths": 2,
      "suspects": 13,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    }
  ]
}

应该如何链接,以使对象“数据”仅显示其中具有“ uf” =“ PE”的对象?

1 个答案:

答案 0 :(得分:0)

您不能像这样将查询字符串传递给JSON。但是,您可以使用过滤器根据键值过滤掉数据。就像这一行一样简单:

api.data.filter(a=>a.uf==code);

您可以将其存储在变量中。您可以将其传递给其他对象,等等。我在顶部使code为变量,因此您可以对其进行更改,并且该变量仍将起作用。自己尝试!

var code = "RJ";
const api = {
  "data": [
    {
      "uid": 35,
      "uf": "SP",
      "state": "São Paulo",
      "cases": 20004,
      "deaths": 1667,
      "suspects": 5334,
      "refuses": 596,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 33,
      "uf": "RJ",
      "state": "Rio de Janeiro",
      "cases": 6828,
      "deaths": 615,
      "suspects": 1254,
      "refuses": 148,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 23,
      "uf": "CE",
      "state": "Ceará",
      "cases": 5421,
      "deaths": 310,
      "suspects": 493,
      "refuses": 89,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 26,
      "uf": "PE",
      "state": "Pernambuco",
      "cases": 4507,
      "deaths": 381,
      "suspects": 89,
      "refuses": 23,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 13,
      "uf": "AM",
      "state": "Amazonas",
      "cases": 3635,
      "deaths": 287,
      "suspects": 18,
      "refuses": 26,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 21,
      "uf": "MA",
      "state": "Maranhão",
      "cases": 2105,
      "deaths": 100,
      "suspects": 125,
      "refuses": 13,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 29,
      "uf": "BA",
      "state": "Bahia",
      "cases": 2081,
      "deaths": 70,
      "suspects": 573,
      "refuses": 36,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 32,
      "uf": "ES",
      "state": "Espírito Santo",
      "cases": 1595,
      "deaths": 47,
      "suspects": 71,
      "refuses": 21,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 15,
      "uf": "PA",
      "state": "Pará",
      "cases": 1579,
      "deaths": 86,
      "suspects": 43,
      "refuses": 23,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 31,
      "uf": "MG",
      "state": "Minas Gerais",
      "cases": 1481,
      "deaths": 58,
      "suspects": 925,
      "refuses": 104,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 42,
      "uf": "SC",
      "state": "Santa Catarina",
      "cases": 1209,
      "deaths": 42,
      "suspects": 346,
      "refuses": 47,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 41,
      "uf": "PR",
      "state": "Paraná",
      "cases": 1140,
      "deaths": 69,
      "suspects": 400,
      "refuses": 119,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 43,
      "uf": "RS",
      "state": "Rio Grande do Sul",
      "cases": 1096,
      "deaths": 34,
      "suspects": 416,
      "refuses": 330,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 53,
      "uf": "DF",
      "state": "Distrito Federal",
      "cases": 1013,
      "deaths": 26,
      "suspects": 327,
      "refuses": 107,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 24,
      "uf": "RN",
      "state": "Rio Grande do Norte",
      "cases": 781,
      "deaths": 40,
      "suspects": 108,
      "refuses": 22,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 16,
      "uf": "AP",
      "state": "Amapá",
      "cases": 685,
      "deaths": 19,
      "suspects": 15,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 52,
      "uf": "GO",
      "state": "Goiás",
      "cases": 506,
      "deaths": 25,
      "suspects": 353,
      "refuses": 55,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 27,
      "uf": "AL",
      "state": "Alagoas",
      "cases": 501,
      "deaths": 29,
      "suspects": 43,
      "refuses": 22,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 25,
      "uf": "PB",
      "state": "Paraíba",
      "cases": 447,
      "deaths": 46,
      "suspects": 85,
      "refuses": 11,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 14,
      "uf": "RR",
      "state": "Roraima",
      "cases": 345,
      "deaths": 3,
      "suspects": 9,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 11,
      "uf": "RO",
      "state": "Rondônia",
      "cases": 328,
      "deaths": 7,
      "suspects": 61,
      "refuses": 2,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 22,
      "uf": "PI",
      "state": "Piauí",
      "cases": 297,
      "deaths": 17,
      "suspects": 12,
      "refuses": 2,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 12,
      "uf": "AC",
      "state": "Acre",
      "cases": 258,
      "deaths": 11,
      "suspects": 12,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 51,
      "uf": "MT",
      "state": "Mato Grosso",
      "cases": 247,
      "deaths": 9,
      "suspects": 45,
      "refuses": 8,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 50,
      "uf": "MS",
      "state": "Mato Grosso do Sul",
      "cases": 217,
      "deaths": 7,
      "suspects": 93,
      "refuses": 26,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 28,
      "uf": "SE",
      "state": "Sergipe",
      "cases": 153,
      "deaths": 9,
      "suspects": 15,
      "refuses": 11,
      "datetime": "2020-04-25T20:34:01.065Z"
    },
    {
      "uid": 17,
      "uf": "TO",
      "state": "Tocantins",
      "cases": 50,
      "deaths": 2,
      "suspects": 13,
      "refuses": 0,
      "datetime": "2020-04-25T20:34:01.065Z"
    }
  ]
};

var filtered = api.data.filter(a=>a.uf==code);
console.log(filtered);