日期:2014-05-16  浏览次数:20364 次

JSON(04)PHP的JSON处理函数及将MySQL结果集快速转为JSON的方法
    我现在弄Web系统,基本上都是JQuery做UI,PHP负责与数据库的交互。两者间用JSON做为数据交换格式。
非常方便,再也不用弄那些框架,模板之类的重型武器了。
  在这列PHP与JSON的处理两个知识点:
       一。 PHP与JSON的相互转换函数
       二。 PHP如何快速从MySQL表中取值组合成JSON 

一。 PHP与JSON的相互转换函数
主要是下面三个函数:
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_decode — 对 JSON 格式的字符串进行编码
json_encode() - 对变量进行 JSON 编码
json_last_error() - 返回最后发生的错误
 
例子:   
<?php
header("Content-type: text/html; charset=utf-8");

$json = <<<JSON
{"total":28,"rows":[
	{"id":1,"name":"xiongchuanliang","pwd":"xcl","status":"A"},
	{"id":2,"name":"zj","pwd":"zj","status":"D"}
]}
JSON;

echo "PHP与JSON测试";
echo '<pre>';
//将JSON字符串变为JSON
echo json_encode($json);
echo '</pre>';

echo '<pre>';
$errJson[] = "{'Organization': 'PHP Documentation Team'}";
foreach ($errJson as $string) {
    echo 'Decoding: ' . $string;    
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - No errors';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Underflow or the modes mismatch';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Syntax error, malformed JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
        break;
        default:
            echo ' - Unknown error';
        break;
    }

    echo PHP_EOL;
}
echo '</pre>';

?>
  相关url: http://www.php.net/manual/zh/function.json-last-error.php