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数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31243