将数据库中数据封装为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编码解码的文章,文章地址:

http://www.brighttj.com/ios/ios-base64-encode-decode.html??

《将数据库中数据封装为json格式》有1个想法

发表评论

电子邮件地址不会被公开。