javascript - 如何在 Javascript 中将字符串布尔值从 MySQL 转换为真正的布尔值?
问题描述
我为我的 ReactJS 前端构建了一个 php 后端。
我的 mysqlusers
表有一checkedIn
列存储为tinyint
. 我正在获取它:
<?php
// ...
$getUser = "SELECT * FROM `users` WHERE `uid`=:uid AND `unique_id`=:unique_id";
$getUser_stmt = $conn->prepare($getUser);
$getUser_stmt->bindValue(':uid', $uid,PDO::PARAM_STR);
$getUser_stmt->bindValue(':unique_id', $unique_id,PDO::PARAM_STR);
$getUser_stmt->execute();
//...
在我的前端:
useEffect(() => {
axios
.get(`${config.server}/api/user.php?uid=${match.params.uid}`)
.then((result) => {
console.log(result.data.message);
setUser(result.data.message);
})
.catch((error) => console.error(error));
}, [match.params.uid]);
我的日志给了我:
{
"id": "5",
"uid": "A0005",
"unique_id": "1384773b4df62",
"mail": "mail@test.com",
"date_checkin": "2021-05-03 11:00:35",
"checkedIn": "1"
}
如何修改我的后端或前端,以便checkedIn
在前端具有真正的布尔值?
我预计:
{
"id": 5,
"uid": "A0005",
"unique_id": "1384773b4df62",
"mail": "mail@test.com",
"date_checkin": Date Mon May 03 2021 17:15:27 GMT+0200,
"checkedIn": true
}
作为副作用:如何将 id 转换为 Number 并将时间戳转换为 Date?
解决方案
创建一个函数convert
做这些转换:
let user = `{
"id": "5",
"uid": "A0005",
"unique_id": "1384773b4df62",
"mail": "mail@test.com",
"date_checkin": "2021-05-03 11:00:35",
"checkedIn": "1"}`;
function convert(data){
data["id"] = data["id"]*1;//Int
data["checkedIn"] = !(data["checkedIn"]==='0');//Bool
data["date_checkin"] = Date(data["date_checkin"]);//Date
return data;
}
convert(JSON.parse(user));
注意:用户有JSON格式。所以使用函数将其转换为真实对象JSON.parse()
推荐阅读
- php - 无法使用 Codeigniter 连接 SQL 服务器
- mysql - 即使在 MYSQL LEFT JOIN 中存在 Join 之后如何带来 NULL 值
- c# - 组合框从列表中添加项目
- vb.net - 在 VB.Net 中依次启动 bat 脚本的最佳方式是什么?
- php - 如何将 PHP 类中的变量用于另一个 php 文件?
- ios - 如何检查 WKWebView URLAuthenticationChallenge 是失败还是成功?
- php - 在 PHP/MYSQL 中从同一数据库的两个不同表中选择数据
- php - TCPDF:如何自动保存 pdf 文件?
- java - 使用 DSE 的 Java API 映射 Cassandra 物化视图
- r - Heatmaply侧边栏颜色,如何正确显示指定颜色?