将数据库中数据封装为json格式

最近准备给博客做一个IOS客户端,首先需要做的就是将数据库数据封装为json格式,然后传回客户端。所以本文将讲解下,如何封装json格式,以及在遇到双引号,换行符,空白字符时的处理。

先上代码:


<?php
//connection information
$host = "localhost";
$user = "username";
$password = "password";
$database = "databasename";

//make connection
$server = mysql_connect($host, $user, $password);
$connection = mysql_select_db($database, $server);

//query the database
mysql_query("SET NAMES UTF8");
//start json object
$json = "{";
$query = mysql_query("SELECT * FROM `wp_posts`");

//loop through and return results
for ($x = 0; $x < mysql_num_rows($query); $x++) {
$row = mysql_fetch_assoc($query);
//continue json object
//,"post_date":"'.$row["post_date"].'" is the whole loop parameter
$json .= '"'.$row["ID"].'":{"post_author":"'.$row["post_author"].'","post_date":"'.$row["post_date"].'","post_title":"'.$row["post_title"].'","post_views":"1"}';

//add comma if not last row, closing brackets if is
if ($x < mysql_num_rows($query) -1) { $json .= ","; } else { $json .= "}"; } } // return JSON echo $json; //close connection mysql_close($server); ?>

如果无法判断json格式是否正确,这里有一个网址可以对json格式进行检测。

如果遇到空格、换行符、空白字符,双引号等,会导致json格式不标准(或者json传输失败),那么客户端在接收数据的时候,就不能正常解析。所以,我们应该在服务器端将json转化为标准格式。很多人都会选择去替换字符,但是空白字符替换不了。我的解决方式是:在服务器端使用base64进行编码,然后再到客户端进行解码。这样,全部特殊字符都被编码为了数字和字母,就可以正常传输了。

我也写了一篇IOS端使用三方库进行base64编码解码的文章,文章地址: