Heim > php教程 > php手册 > Hauptteil

php返回json数据函数例子

WBOY
Freigeben: 2016-05-25 16:45:57
Original
1213 Leute haben es durchsucht

json_encode()函数是一个在php中可以把数组转换成json格式的函数了,但json_encode函数对于英文是没有任何问题,如果碰到中文或编码有不致情况时会出现中文转换之后变空了,下面我就来从多方面来介绍php返回json数据应用与一些使用转换时的问题解决办法。

json_encode()函数用法。

echo json_encode(array('a'=>'bbbb','c'=>'ddddd');
Nach dem Login kopieren

这样就会生成一个标准的json格式的数据

<?php
//需要执行的SQL语句
//单条
$sql="select id,name from tbl_user where id=1";
//多条数据
//$sql="select id,name from tbl_user";
//调用conn.php文件进行数据库操作 
require(&#39;Conn.php&#39;);
//提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来 
if($result) 
{
// $array=mysql_fetch_array($result,MYSQL_ASSOC);
 
  
 /*数据集
 $users=array();
 $i=0;
 while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
   echo $row[&#39;id&#39;].&#39;-----------&#39;.$row[&#39;name&#39;].&#39;</br>&#39;;
   $users[$i]=$row;
   $i++;
 }
  echo json_encode(array(&#39;dataList&#39;=>$users));
 */
 /*单条数据*/
 $row=mysql_fetch_row($result,MYSQL_ASSOC);
 
 echo json_encode(array(&#39;jsonObj&#39;=>$row));
}
mysql_free_result($result);
//释放结果
mysql_close();
//关闭连接
?>
Nach dem Login kopieren

上面是数据库生成json数据了

单条数据:{"jsonObj":{"id":"1","name":"lmw"}}

多条数据:{"dataList":[{"id":"1","name":"lmw"},{"id":"2","name":"xxj"},{"id":"3","name":"xxxj"}]}


现在很多情况下,我们需要程序返回一个Json格式的结果,比如:

{
    "UserKeyGetResponse":
        {"RequestName":"e99e6d63e8c712d7699f52978a","api_key_value":"41954dd9b1cb6a95802eab6810"},
    "error_response":
        {"code":"NO_ERROR","msg":"获取系统参数成功"}
}
Nach dem Login kopieren

可以将结果写成这样的数组形式:

$respon = array(&#39;UserKeyGetResponse&#39; => array(&#39;RequestName&#39; => $api_request_name, &#39;api_key_value&#39; => $api_key_value),
&#39;error_response&#39; => array(&#39;code&#39; => &#39;NO_ERROR&#39;, &#39;msg&#39; => &#39;获取系统参数成功&#39;));
Nach dem Login kopieren

代码

<?php
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die(&#39;possible deep recursion attack&#39;);
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }
        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}
?>
Nach dem Login kopieren

g:

<?php
$error_respon = array(&#39;code&#39; => &#39;ERROR_MSG_MISS&#39;, &#39;msg&#39; => &#39;消息不存在&#39;);
echo JSON($array);
?>
Nach dem Login kopieren

结果为:

{"code":"ERROR_MSG_MISS","msg":"消息不存在"}
Nach dem Login kopieren

客户端就可以解析这个结果了,当然错误码要用数字代替。

这样就好多了我们显示的直接是中文了,当然显示那个16进制的编码也是没有问题的哦。


本文链接:

收藏随意^^请保留教程地址.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage