Console.log返回两个具有相同密钥名的对象的json响应
我有一个对象,其中有两个具有相同键名称(数据)的嵌套对象,第二个对象有一个具有相同名称(数据)的嵌套对象。我试图访问嵌套的第二个对象的数字键和字母键。我的目标是选择第二个数据对象并“忽略”第一个数据对象,这样它就不会以未定义的形式出现在我的console.log中。任何帮助都将不胜感激 js获取api端点并返回响应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
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>
);
};