极品分享

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 


效果如下:


 二。 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等能完成各式各样的交互。


2015-03-11 0 /
PHP学习
/
标签: 

评论回复

回到顶部