从 JSON 个终点保存数据
Saving data from JSON end point
我正在尝试映射返回的 json 并将 ID 保存到 profile/profiles。但是它似乎没有正确映射数据,id:
${ profile.id }
这个位需要更改吗?任何帮助深表感谢。
他们的在线工具可以帮我解决这个问题吗?
API 请求:
// Grabs company data from the json url
private getProfiles() {
let config = {
headers: {'Authorization':'Bearer AQVVEqNXTWVYPpPYivKNWVO8jsTx2eveV3kBg'}
}
axios
.get("https://cors-anywhere.herokuapp.com/" + "https://api.linkedin.com/v2/me", config)
.then(response =>
response.data.map(profile => ({
id: `${ profile.id }`
}))
)
.then(profiles => {
this.setState({
profiles
});
})
// We can still use the `.catch()` method since axios is promise-based
.catch(error => this.setState({ error, isLoading: false }));
}
Json返回数据:
{
"localizedLastName": "King",
"id": "fm0B3D6y3I",
"localizedFirstName": "Benn"
}
当我控制台记录 response.data
我不明白,你想做什么。在地图中你有一个回调函数,但我看到你在那里写了一个对象。如果您想重写当前配置文件的 ID,请这样写:
response.data.map(profile => ({
profile.id = `${ profile.id }`;
}))
但是如果你想让它成为一个变量那么这个:
response.data.map(profile => ({
let id = `${ profile.id }`;
}))
如果从您的端点返回的唯一数据是您发布的 JSON,那么您没有要映射的数组。
你只有一个对象。
我以前从未使用过axios
库,但查看源代码response.data应该是JSON-从XHR请求中解析的responseText:
https://github.com/axios/axios/blob/4f189ec80ce01a0275d87d24463ef12b16715d9b/lib/defaults.js#L61
现在我看到你已经发布了 response.data
,它符合我的预期。
考虑到这一点,我建议这样处理:
// Grabs company data from the json url
private getProfiles() {
let config = {
headers: {'Authorization':'Bearer AQVVEqNXTWVYPpPYivKNWVO8jsTx2eveV3kBg'}
}
axios
.get("https://cors-anywhere.herokuapp.com/" + "https://api.linkedin.com/v2/me", config)
.then(response => ({
id: profile.id
}))
.then(profiles => {
this.setState({
profiles
});
})
// We can still use the `.catch()` method since axios is promise-based
.catch(error => this.setState({ error, isLoading: false }));
}
不过,您返回的是一份个人资料。如果您需要 profiles
成为一个数组,您需要将响应放入一个数组中。
我正在尝试映射返回的 json 并将 ID 保存到 profile/profiles。但是它似乎没有正确映射数据,id:
${ profile.id }
这个位需要更改吗?任何帮助深表感谢。
他们的在线工具可以帮我解决这个问题吗?
API 请求:
// Grabs company data from the json url
private getProfiles() {
let config = {
headers: {'Authorization':'Bearer AQVVEqNXTWVYPpPYivKNWVO8jsTx2eveV3kBg'}
}
axios
.get("https://cors-anywhere.herokuapp.com/" + "https://api.linkedin.com/v2/me", config)
.then(response =>
response.data.map(profile => ({
id: `${ profile.id }`
}))
)
.then(profiles => {
this.setState({
profiles
});
})
// We can still use the `.catch()` method since axios is promise-based
.catch(error => this.setState({ error, isLoading: false }));
}
Json返回数据:
{
"localizedLastName": "King",
"id": "fm0B3D6y3I",
"localizedFirstName": "Benn"
}
当我控制台记录 response.data
我不明白,你想做什么。在地图中你有一个回调函数,但我看到你在那里写了一个对象。如果您想重写当前配置文件的 ID,请这样写:
response.data.map(profile => ({
profile.id = `${ profile.id }`;
}))
但是如果你想让它成为一个变量那么这个:
response.data.map(profile => ({
let id = `${ profile.id }`;
}))
如果从您的端点返回的唯一数据是您发布的 JSON,那么您没有要映射的数组。
你只有一个对象。
我以前从未使用过axios
库,但查看源代码response.data应该是JSON-从XHR请求中解析的responseText:
https://github.com/axios/axios/blob/4f189ec80ce01a0275d87d24463ef12b16715d9b/lib/defaults.js#L61
现在我看到你已经发布了 response.data
,它符合我的预期。
考虑到这一点,我建议这样处理:
// Grabs company data from the json url
private getProfiles() {
let config = {
headers: {'Authorization':'Bearer AQVVEqNXTWVYPpPYivKNWVO8jsTx2eveV3kBg'}
}
axios
.get("https://cors-anywhere.herokuapp.com/" + "https://api.linkedin.com/v2/me", config)
.then(response => ({
id: profile.id
}))
.then(profiles => {
this.setState({
profiles
});
})
// We can still use the `.catch()` method since axios is promise-based
.catch(error => this.setState({ error, isLoading: false }));
}
不过,您返回的是一份个人资料。如果您需要 profiles
成为一个数组,您需要将响应放入一个数组中。