<noframes id="9rfbv">

    <form id="9rfbv"><nobr id="9rfbv"><progress id="9rfbv"></progress></nobr></form><address id="9rfbv"><address id="9rfbv"><listing id="9rfbv"></listing></address></address>
        <em id="9rfbv"></em>
          <dfn id="9rfbv"><dl id="9rfbv"><cite id="9rfbv"></cite></dl></dfn>
          <address id="9rfbv"></address>

          <address id="9rfbv"></address>

          <address id="9rfbv"></address>

            php返回json數據函數實例

            時間:2017/4/27 16:51:40,點擊:0

            本文實例講述了php返回json數據函數的用法,分享給大家供大家參考。具體方法如下:

            json_encode()函數用法:
            echo json_encode(array('a'=>'bbbb','c'=>'ddddd');

            這樣就會生成一個標準的json格式的數據
            <?php
            //需要執行的SQL語句
            //單條
            $sql="select id,name from tbl_user where id=1";
            //多條數據
            //$sql="select id,name from tbl_user";
            //調用conn.php文件進行數據庫操作
            require('Conn.php');
            //提示操作成功信息,注意:$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['id'].'-----------'.$row['name'].'</br>';
            $users[$i]=$row;
            $i++;
            }
            echo json_encode(array('dataList'=>$users));
            */
            /*單條數據*/
            $row=mysql_fetch_row($result,MYSQL_ASSOC);
              
            echo json_encode(array('jsonObj'=>$row));
            }
            mysql_free_result($result);
            //釋放結果
            mysql_close();
            //關閉連接
            ?>

            上面是數據庫生成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":"獲取系統參數成功"}
            }

            可以將結果寫成這樣的數組形式:
            $respon = array('UserKeyGetResponse' => array('RequestName' => $api_request_name, 'api_key_value' => $api_key_value),
            'error_response' => array('code' => 'NO_ERROR', 'msg' => '獲取系統參數成功'));

            代碼如下:
            function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
            {
            static $recursive_counter = 0;
            if (++$recursive_counter > 1000) {
              die('possible deep recursion attack');
            }
            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--;
            }
            g:
            $error_respon = array('code' => 'ERROR_MSG_MISS', 'msg' => '消息不存在');
            echo JSON($array);

            運行結果為:
            {"code":"ERROR_MSG_MISS","msg":"消息不存在"}

            客戶端就可以解析這個結果了,當然錯誤碼要用數字代替。
            這樣就好多了我們顯示的直接是中文了,當然顯示那個16進制的編碼也是沒有問題的。
            服務器端PHP:
            $result = mysql_query("select * from table");

            $reports=array();
            $i=0;

            while($row = mysql_fetch_array($result))
              {
              $reports[$i] = $row;
              $i++;
              }
            echo json_encode(array('dataList'=>$reports));

            小程序端JS:
              onShow: function() {
                var that=this
                wx.request({
              url: 'https://urltoyourserver.php', //僅為示例,并非真實的接口地址
              data: {
            、
              },
              method: 'POST',
              header: {
                  'content-type': 'application/json'
              },
              success: function(res) {
              that.setData({ 'inform' : res.data.dataList})
              }
            })
            },

            inform現在就是object,你可以隨意顯示

            打印 | 關閉

            日本字幕有码中文字幕