>백엔드 개발 >PHP 튜토리얼 >PHP는 json 데이터 함수를 반환합니다.

PHP는 json 데이터 함수를 반환합니다.

WBOY
WBOY원래의
2016-05-16 20:35:11953검색

이 문서의 예는 PHP에서 json 데이터를 반환하는 함수의 사용법을 설명하며 참고용으로 모든 사람과 공유됩니다. 구체적인 방법은 다음과 같습니다.

json_encode() 함수 사용법:

echo json_encode(array('a'=>'bbbb','c'=>'ddddd');

이렇게 하면 표준 json 형식 데이터가 생성됩니다

<&#63;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();
//关闭连接
&#63;>

위는 데이터베이스에서 생성된 json 데이터입니다
단일 데이터 조각: {"jsonObj":{"id":"1","name":"lmw"}}
여러 데이터 조각: {"dataList":[{"id":"1","name":"lmw"},{"id":"2","name":"xxj"},{"id " :"3","이름":"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 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.