PHP如何从MySQL取数据并封装成JSON格式
想用PHP从MySQL数据库读取一大堆数据,然后哇塞,一口气全部转换成JSON格式,该怎么干呢?其实超级简单!你只需要先定义一个空数组,然后一边用SQL语句查询数据,一边用PHP循环把查询出的每条数据放进这个数组里,最后用json_encode()函数把数组转成JSON字符串。比如,先写个:
$array = array();
$query = mysql_query("SELECT * FROM table");
while ($row = mysql_fetch_assoc($query)) {
$array[] = $row;
}
echo json_encode($array);
就这么简单,这json_encode()函数专门负责把PHP数组转成JSON格式,特别好用!你也可以用mysqli库,流程基本一样:
$sql = "SELECT * FROM table1";
$result = mysqli_query($conn, $sql);
$output = [];
while ($row = mysqli_fetch_assoc($result)) {
$output[] = $row;
}
echo json_encode($output);
这样,数据就嘣地一下打包成JSON啦,非常适合做接口或给前端传数据。

PHP在转换MySQL数据成JSON时中文乱码怎么办 以及字符串如何转JSON对象
哎呀,很多小伙伴一转换,中文就变成乱码,心塞吧?别慌,这其实是编码问题惹的祸。要想让中文开开心心地显示,得确保你的页面编码是UTF-8。如果不确定,可以先把数组里所有内容用urlencode()转换下,然后再用json_encode(),最后输出时用urldecode()还原中文。示例代码是这样滴:
function json_array($obj) {
foreach($obj as $key => $value) {
if(is_array($value)) {
$obj[$key] = json_array($value);
} else {
$obj[$key] = urlencode($value);
}
}
return $obj;
}
$array = json_array($array);
echo urldecode(json_encode($array));
对了,另外你想把字符串转成JSON对象,用PHP也很容易。比如你有个JSON格式的字符串:
$jsonStr = '{"name":"张三","age":18}';
print_r(json_decode($jsonStr));
运行后,你会看到PHP已经把字符串解析成一个对象或者数组(根据你用的参数),这个在处理接口返回数据的时候特好用,超方便!
- 确保在php编辑器里写代码,执行文件。
- 浏览器访问你的PHP文件,惊喜出现!
超级顺畅,没毛病!

相关问题解答
-
PHP从MySQL取数据转JSON为啥要用数组先存着?
哎呀,这其实是因为PHP取出来的每条数据都是独立的,你如果不先装进数组,json_encode()可没法一次性给你转换整块数据。数组是个大容器,把所有数据轻松收纳,方便整体转成JSON。好比你得先把书都放书架上,才能一次搬走。 -
咋整才能避免PHP转JSON时中文乱码?
真心告诉你,一定要确认你的页面编码是UTF-8,这超关键!如果乱码,马上上urlencode()帮帮忙,转下编码,防止乱七八糟的字符塞进JSON。记住,生成JSON前转编码,输出时用urldecode(),简单又实用,根本不麻烦! -
PHP中字符串怎么转为JSON对象能用?
完全靠json_decode(),你就给它一段JSON格式的字符串,json_decode()立马帮你变身成PHP数组或对象!你直接print_r()就能清楚看到转换效果。特别适合你在接口里接收JSON字符串后处理。 -
用PHP从MySQL取数据做接口,有啥必备小技巧?
别忘了先用数组装数据,然后json_encode()它,注意编码;还有,查询语句写好别写漏字段,连接数据库前测试连接有没有错误。接口嘛,响应快准稳,代码要简洁明了,不然调用方会哭的,哈哈!
发布评论