PHP转换成JSON格式有两种方式, 一种是数组转换,另一种是对象转换.
数组转换后的样式为[..., ..., ...]
对象转换后的样式为{..., ..., , ...,}
当然也可以将数组强制转换成对象后进行JSON变换.
示例代码如下:
<?php
# 练习使用php进行操作数据库并转换json格式
# 连接主数据库, 使用 'host', 'user', 'password'
$link = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS);
if($link){
# 选择数据库
mysql_select_db(SAE_MYSQL_DB, $link);
// your code goes here
echo "Connect success </br>\n";
// query array of 0 ~ 30
$sql = "SELECT * FROM `img_url` LIMIT 0, 30 ";
$result = mysql_query($sql, $link);
/*
result是一个多维数组,row是多维数组中的一行
打印一行字段为'url'的数据
*/
$list = array();
while($row = mysql_fetch_array($result)) {
print_r($row['url']."</br>\n"); //die;
$array = array(
"url" => $row['url'],
);
// 保存urls的一维数组
$list[] = $array;
}
// 定义将要转成json的object
$obj->id = 10;
$obj->isEnable = false;
$obj->urls = $list;
$str = json_encode($obj);
echo "Array => JSON : ".$str."\n";
mysql_close($link);
}else{
die('Could not connect: ' .mysql_error());
}
?>
JSON数据格式化显示为:
{
"id": 10,
"isEnable": false,
"urls": [
{
"url": "http://www.163.com"
},
{
"url": "http://www.aliyun.com"
},
{
"url": "http://www.baidu.com"
},
{
"url": "http://www.google.com"
},
{
"url": "http://www.qq.com"
}
]
}
因为不熟悉PHP数组的使用方法,一开始走了不少错路,不过还好最终成功的能够得到想要的JSON格式.可能有精通PHP的朋友有更好的方法,可以留言告诉我.