好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP中数组转换成json字符串程序代码 - php数组

PHP中数组转换成json字符串程序代码

数据转换js格式的数据是我们常用一种数据传递的方法,特别像ajax中会时常用到把数据转换成json然后再转换回来,下面看一个实例,代码如下:

function  array_to_json( $array ) {    if  (!  is_array  (  $array  )) {     return  false;   }      $associative  =  count  (  array_diff  (  array_keys  (  $array  ),  array_keys  (  array_keys  (  $array  ) ) ) );    if  ( $associative ) {         $construct  =  array  ();     foreach  (  $array   as   $key  =>  $value  ) {           // We first copy each key/value pair into a staging array,       // formatting each key and value properly as we go.             // Format the key:       if  ( is_numeric  (  $key  )) {       $key  =  "key_$key" ;     }      $key  =  "" " . addslashes ( $key ) . " "" ;           // Format the value:       if  ( is_array  (  $value  )) {       $value  = array_to_json (  $value  );     }  else   if  (!  is_numeric  (  $value  ) ||  is_string  (  $value  )) {       $value  =  "" " . addslashes ( $value ) . " "" ;     }           // Add to staging array:       $construct  [] =  "$key: $value" ;    }         // Then we collapse the staging array into the JSON form:      $result  =  "{"  . implode (  "," ,  $construct  ) .  "}" ;     }  else  {  // If the array is a vector (not associative):          $construct  =  array  ();     foreach  (  $array   as   $value  ) {           // Format the value:       if  ( is_array  (  $value  )) {       $value  = array_to_json (  $value  );     }  else   if  (!  is_numeric  (  $value  ) ||  is_string  (  $value  )) {       $value  =  "" " . addslashes ( $value ) . " "" ;     } //开源软件:phpfensi.com            // Add to staging array:       $construct  [] =  $value ;    }         // Then we collapse the staging array into the JSON form:      $result  =  "["  . implode (  ", " ,  $construct  ) .  "]" ;   }      return   $result ;  } 

你可以试试这个,然后json_encode换成上面的函数看看正常了吗,代码如下:

<?php  if ( $_GET [ 'enews' ]== 'ok' ){       echo  json_encode( array ( 'a' => '王进' )); exit ;  }  ?>  <script type= "text/javascript"  src= "jquery.js" ></script>  <script type= "text/javascript" >  $( function (){      $.get( "?enews=ok" ,  function (result){      alert(result);   });  });  </script> 

关于php中json_encode

json_encode()将PHP的不同类型的变量转换为对应的JSON字符串 string json_encode(mixed $value [,int $options = 0])

JSON_HEX_QUOT:将所有的双引号(])转换为u0022,实例代码如下:

$data  =  '"' ;  echo  json_encode( $data );  // """   echo  json_encode( $data , JSON_HEX_QUOT);    // "u0022"  

JSON_HEX_TAG:将所有的大于号(>)转换为u003E,将所有的小于号(<)转换为 u003C。

JSON_HEX_AMP:将所有的与号(&)转换为 u0026。

JSON_HEX_APOS:将所有的单引号(’)转换为u0027。

JSON_FORCE_OBJECT:当value为非关联数组时强制输出结果为JSON对象。在接收者要求数据为对象且value为空数组时

使用,实例代码如下:

$data  =  array ();  echo  json_encode( $data );  // []   echo  json_encode( $data , JSON_FORCE_OBJECT);  // {}   PHP 5.3.3  JSON_NUMERIC_CHECK: Encodes numeric strings  as  numbers.  PHP 5.4.0  JSON_BIGINT_AS_STRING: Encodes large integers  as  their original string value. Available since PHP   5.4.0. //开源软件:phpfensi.com   JSON_PRETTY_PRINT: Use whitespace in returned data to format it. Available since PHP 5.4.0.  JSON_UNESCAPED_SLASHES: Don’t escape /. Available since PHP 5.4.0.  JSON_UNESCAPED_UNICODE: Encode multibyte Unicode characters literally ( default  is to escape  as  uXXXX).  Available since PHP 5.4.0.

查看更多关于PHP中数组转换成json字符串程序代码 - php数组的详细内容...

  阅读:48次