Console.log返回两个具有相同密钥名的对象的json响应

Console.log返回两个具有相同密钥名的对象的json响应,json,reactjs,object,axios,key,Json,Reactjs,Object,Axios,Key,我有一个对象,其中有两个具有相同键名称(数据)的嵌套对象,第二个对象有一个具有相同名称(数据)的嵌套对象。我试图访问嵌套的第二个对象的数字键和字母键。我的目标是选择第二个数据对象并“忽略”第一个数据对象,这样它就不会以未定义的形式出现在我的console.log中。任何帮助都将不胜感激 js获取api端点并返回响应 const worldData = 'https://disease.sh/v3/covid-19/all'; export const fetchWorldData = asyn

我有一个对象,其中有两个具有相同键名称(数据)的嵌套对象,第二个对象有一个具有相同名称(数据)的嵌套对象。我试图访问嵌套的第二个对象的数字键和字母键。我的目标是选择第二个数据对象并“忽略”第一个数据对象,这样它就不会以未定义的形式出现在我的console.log中。任何帮助都将不胜感激

js获取api端点并返回响应

const worldData = 'https://disease.sh/v3/covid-19/all';

export const fetchWorldData = async () => {
try {
     const response = await axios.get(worldData);

     return response;
   } catch (error) {
  console.log(error);
  } 
};
App.js将数据设置为state对象,并将其传递给道具

import { fetchWorldData } from './api';

 class App extends React.Component {
    state = {
     worldData: {},
    };

     async componentDidMount() {

         const fetchedWorldData = await fetchWorldData();

           this.setState({
            worldData: fetchedWorldData,
          });
      }

      render() {
       const { worldData } = this.state;

         return (
             <div>
                <WorldDisplay data={worldData} />
              </div>
                 );
                }
              }

   export default App;

您实际得到的是两个控制台日志。第一个是空白或空的,所以它在控制台上显示的是它的\u proto或portotype(继承了它的基本形式的道具和方法;在本例中是JSObject

第二个日志使用实际数据获取响应。 它只有一个道具:数据。它的结构是

{
  config: Object
  data: Object
  headers: Object
  request: XMLHttpRequest
  status: Number
  statusText: String
}
你想要的是这个里面的数据道具(所以是data.data),它包含

{
  active: Number
  activePerOneMillion: Number
  affectedCountries: Number
  cases: Number
  casesPerOneMillion: Number
  critical: Number
  criticalPerOneMillion: Number
  deaths: Number
  deathsPerOneMillion: Number
  oneCasePerPeople: Number
  oneDeathPerPeople: Number
  oneTestPerPeople: Number
  population: Number
  recovered: Number
  recoveredPerOneMillion: Number
  tests: Number
  testsPerOneMillion: Number
  todayCases: Number
  todayDeaths: Number
  todayRecovered: Number
  updated: Number
}
要在代码中访问它,请尝试以下操作:

const WorldDisplay = (data) => {
  if(data.data && data.data.data)
      console.log(data.data.data);

  return (
    <div>
      <h1> hello world</h1>
    </div>
  );
};
constworlddisplay=(数据)=>{
if(data.data&&data.data.data)
日志(data.data.data);
返回(
你好,世界
);
};

您发布的内容不是有效的JSON。谢谢,更改了标题以反映问题。正如我在帖子中提到的,当我使用console.log(数据)时,在本例中使用console.log(数据.data.data)时,返回了两个对象。未定义且{active:Number,…}。我怎样才能用原型“忽略”第一个对象,只从第二个对象检索数据。我不是React程序员,所以可能我遗漏了一些关于调用两次的信息,但我想说你可以放一个if语句。因此,如果data.data包含任何内容,请执行某些操作。如果它是空的(如果它只有proto,它实际上是空的),什么也不做。这有意义吗?
{
  active: Number
  activePerOneMillion: Number
  affectedCountries: Number
  cases: Number
  casesPerOneMillion: Number
  critical: Number
  criticalPerOneMillion: Number
  deaths: Number
  deathsPerOneMillion: Number
  oneCasePerPeople: Number
  oneDeathPerPeople: Number
  oneTestPerPeople: Number
  population: Number
  recovered: Number
  recoveredPerOneMillion: Number
  tests: Number
  testsPerOneMillion: Number
  todayCases: Number
  todayDeaths: Number
  todayRecovered: Number
  updated: Number
}
const WorldDisplay = (data) => {
  if(data.data && data.data.data)
      console.log(data.data.data);

  return (
    <div>
      <h1> hello world</h1>
    </div>
  );
};