我正在开发一个返回PHP JSON API多维数组的json_encoded。由于PHP是一种弱类型语言-我在客户端返回的数据类型有一些问题,例如整数作为字符串返回。
响应示例
在json编码之前
array() {
["users"]=>
array() {
["id"]=>
string(3) "983"
["email"]=>
string(28) "xxx.xxx@xxx.xxx"
["username"]=>
string(8) "xxx"
["verified"]=>
string(1) "2"
["tutorial_completed"]=>
string(1) "1"
}
["companies"]=>
array() {
["id"]=>
string(3) "170"
["name"]=>
string(0) "xxx"
["trusted"]=>
string(1) "1"
}
}在json编码后的
data: {
users: {
id: "983",
email: "xxx@xxx.xxx",
username: "xxx",
verified: "2",
tutorial_completed: "1",
},
companies: {
id: "170",
name: "xxx",
trusted: "1",
}
}我正在从一个MySQL table获取数据。这些值基本上都是按原样计算的。
One解决方案,它的工作是检查每个键,然后通过intval()或floatval()转换数值-但这将意味着一个巨大的努力,更大的数组和解决方案缺乏灵活性。
它们是否是一种自动检测数据类型是否也可以是数字值的平滑方式,如果可以,则转换它吗?
发布于 2020-09-22 09:28:52
问题:当您从MySQL数据库中获取数据时,结果中的字段是字符串类型或NULL,不管数据库中字段的类型是什么。这与MYSQL驱动程序有关。
解决方案:您需要自己将数值转换为数组中所需的类型。或者,在转换为json时,只需使用:
$encoded = json_encode($data, JSON_NUMERIC_CHECK);数字字段将自动为您转换。
发布于 2020-09-22 09:02:22
您可以在从is_int()获取数据的循环中使用mysql函数,并在创建数组时使用返回为true的intval(),希望这会有所帮助。
https://stackoverflow.com/questions/64006182
复制相似问题