在 js 中将字符串数据从 JSON API 转换为 int 的任何方法或解决方案?
Any way or solution to convert the string data from JSON API to int in js?
考虑以下代码:
componentDidMount(){
const id = localStorage.getItem('id');
fetch(`http://localhost:9000/api/calendar/list/${id}`,)
.then((resp)=>{
resp.json().then((res)=>{
this.setState({
data: res.data.map(item => {
return {
title: item.title,
startDate: new Date(item.startDate),
endDate: new Date(item.endDate),
eventId: item.eventType // from api it provide on string but I need to convert it in to an integer
};
})
});
})
})
}
API 的结果在这里:
因此在前端 js 上,我需要将 eventId 设置为一个数字,例如 Conference in num 1,Launching in num 2 , 第 3 个贸易展览。我有什么办法可以做到吗?
您可以创建一个对象来将字符串映射到这样的数字,其中 item1
和 item2
是您的 API 数据的示例:
const item1 = {
userId: 1,
startDate: 123456,
endDate: 123456,
eventType: 'Conference'
};
const item2 = {
userId: 2,
startDate: 123456,
endDate: 123456,
eventType: 'Launching'
};
const map = { Conference: 1, Launching: 2, Trade: 3 };
console.log(map[item1.eventType]); // eventId will be 1 for Conference
console.log(map[item2.eventType]); // eventId will be 2 for Launching
在您的代码中,这将是
const map = { Conference: 1, Launching: 2, Trade: 3 };
fetch(`http://localhost:9000/api/calendar/list/${id}`,)
.then((resp)=>{
resp.json().then((res)=>{
this.setState({
data: res.data.map(item => {
return {
title: item.title,
startDate: new Date(item.startDate),
endDate: new Date(item.endDate),
eventId: map[item.eventType]
};
})
});
})
})
如果您知道所有值,则可以利用 Switch Case
getEventId = eventType => {
switch (eventType){
case 'Conference'
return 1;
...... // rest of the cases
}
}
}
然后使用这个函数将eventType映射到eventId
eventId: getEventId(item.eventType)
考虑以下代码:
componentDidMount(){
const id = localStorage.getItem('id');
fetch(`http://localhost:9000/api/calendar/list/${id}`,)
.then((resp)=>{
resp.json().then((res)=>{
this.setState({
data: res.data.map(item => {
return {
title: item.title,
startDate: new Date(item.startDate),
endDate: new Date(item.endDate),
eventId: item.eventType // from api it provide on string but I need to convert it in to an integer
};
})
});
})
})
}
API 的结果在这里:
因此在前端 js 上,我需要将 eventId 设置为一个数字,例如 Conference in num 1,Launching in num 2 , 第 3 个贸易展览。我有什么办法可以做到吗?
您可以创建一个对象来将字符串映射到这样的数字,其中 item1
和 item2
是您的 API 数据的示例:
const item1 = {
userId: 1,
startDate: 123456,
endDate: 123456,
eventType: 'Conference'
};
const item2 = {
userId: 2,
startDate: 123456,
endDate: 123456,
eventType: 'Launching'
};
const map = { Conference: 1, Launching: 2, Trade: 3 };
console.log(map[item1.eventType]); // eventId will be 1 for Conference
console.log(map[item2.eventType]); // eventId will be 2 for Launching
在您的代码中,这将是
const map = { Conference: 1, Launching: 2, Trade: 3 };
fetch(`http://localhost:9000/api/calendar/list/${id}`,)
.then((resp)=>{
resp.json().then((res)=>{
this.setState({
data: res.data.map(item => {
return {
title: item.title,
startDate: new Date(item.startDate),
endDate: new Date(item.endDate),
eventId: map[item.eventType]
};
})
});
})
})
如果您知道所有值,则可以利用 Switch Case
getEventId = eventType => {
switch (eventType){
case 'Conference'
return 1;
...... // rest of the cases
}
}
}
然后使用这个函数将eventType映射到eventId
eventId: getEventId(item.eventType)