问题描述
我需要将嵌套的 JSON 数据解析为来自 API 的普通 JSON,并且需要将该 JSON 数据传递到反应表(我使用的是反应表库),如下所示:
嵌套的 Json 数据:
{
"value":[
{
"id":"d38070fd","name":"webwhatsapp","url":"webwhatsapp.com","project":{
"id":"89ea5860-8dce","name":"whatsapp","url":"","state":"well","revision":10612,"visibility":"private","lastUpdateTime":"2021-01-27T11:30:55.523Z"
},"defaultBranch":"branchname","size":33758407,"remoteUrl":"remote","sshUrl":"ssh","webUrl":"weburl","isdisabled":false
},{
"id":"b0dd02f7","name":"git","url":"github.com","project":{
"id":"89ea5860","name":"core","size":30654059,"remoteUrl":"url","sshUrl":"url.git","webUrl":"url.git",]
},count: 90
}
对于这个 JSON:
{
"value":[
{
"id":"d38070fd","isdisabled":false
"project.id":"89ea5860-8dce","project.name":"whatsapp","project.url":"","project.state":"well","project.revision":10612,"project.visibility":"private","project.lastUpdateTime":"2021-01-27T11:30:55.523Z"
},{
"id":"b0dd02f7","isdisabled":false
"project.id":"89ea5860","project.name":"core","project.url":"github.com","project.lastUpdateTime":"2021-01-27T11:30:55.523Z"
},
代码如下:
import React,{ useState,useEffect } from "react";
import { Row,Col } from "react-bootstrap";
import axios from "axios";
const App = () => {
const[data,setData] = useState()
let api = "apiurl";
let token = "token";
useEffect(() => {
axios.get(api,{ headers: {"Authorization" : `Basic ${token}`} })
.then(res => {
console.log(res)
setData(res)
})
.catch(err =>{
console.log('error',err)
})
},[]);
}
export default App;
我可以在控制台中看到数据,但无法像上面那样解析 JSON。 有人可以帮忙吗? 提前致谢
解决方法
我的理解是,你只需要JSON(API结果)的值部分。
所以而不是做
setData(res);
你应该这样做
setData(JSON.parse(res).value)