我现在弄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
效果如下:
二。 PHP如何快速从MySQL表中取值组合成JSON
例子代码:
<?php header("Content-type: text/html; charset=utf-8"); //如何快速从MySQL表中取值组合成JSON include 'inc/xcl_conn.php'; $result = array(); $rs = mysql_query("select count(*) from users"); $row = mysql_fetch_row($rs); $result["total"] = $row[0]; $sql=" SELECT id,name,pwd,status FROM users"; $rs = mysql_query($sql); $items = array(); while($row = mysql_fetch_object($rs)){ array_push($items, $row); } $result["rows"] = $items; echo json_encode($result); ?>
通过上面的代码,能用很少的代码得到例一形式的 JSON 结果集。
总的来说,PHP处理JSON非常方便,配合JQuery的.post,.get和.ajax等能完成各式各样的交互。
评论回复