gpt4 book ai didi

javascript - 如何在react JS(axios)中从json中提取一些数据?

转载 作者:行者123 更新时间:2023-12-03 03:52:48 25 4
gpt4 key购买 nike

我是 ReactJS 和 axios 新手。

如果键是数字(如 0、1、2...),我想迭代并提取 json 数据并且不知道如何编写这段代码。(因为服务器动态提供json,我们不知道它会有多少个元素)

现在我可以使用 key = 0 提取数据(假设存在这个元素)

class ContentBody extends Component {
constructor(props) {
super(props);
this.state = {
jdata: []
}
}
componentDidMount() {
var self = this;
// read data periodically
setInterval(function() {
axios.get(URL)
.then(function(response) {
self.setState({
jdata: response.data[0].Name
});
})
.catch(function(e) {
console.log("ERROR ", e);
})
}, 1000);
}
}

// below is json data from the server
{
"0": {
"Assigned": false,
"Name": "BebopDrone-Test001.",
"droneID": 0
},
"1": {
"Assigned": false,
"Name": "BebopDrone-B046836",
"droneID": 1
},
"2": {
"Assigned": false,
"Name": "BebopDrone-Test002.",
"droneID": 2
},
"function": "getAllDroneStatus()"
}


// my pseudo code might be
for(int i = 0; i < jsonObject.size(); i++){
if(key is number){
extract corresponding value
}
}

最佳答案

您从服务器获得的响应是​​一个对象,您应该做的是循环该对象,然后在我假设您只需要名称的状态下更新数据

componentDidMount() {
var self = this;
// read data periodically
setInterval(function() {
axios.get(URL)
.then(function(response) {
var names=[];
Object.keys(response.data).forEach(function(data) {
names.push(data.Name);
})
self.setState({
jdata: names
});
})
.catch(function(e) {
console.log("ERROR ", e);
})
}, 1000);
}

关于javascript - 如何在react JS(axios)中从json中提取一些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45094137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com