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

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

functionarray_to_json($array) {

if(!is_array($array)) {

returnfalse;

}

$associative=count(array_diff(array_keys($array),array_keys(array_keys($array) ) ) );

if($associative) {

$construct=array();

foreach($arrayas$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);

} elseif(!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($arrayas$value) {

// Format the value:

if(is_array($value)) {

$value= array_to_json ($value);

} elseif(!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换成上面的函数看看正常了吗,代码如下:

if($_GET['enews']=='ok'){

echojson_encode(array('a'=>'王进'));exit;

}

?>

$(function(){

$.get("?enews=ok",function(result){

alert(result);

});

});

关于php中json_encode

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

PHP 5.3.0

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

$data='"';

echojson_encode($data);// """

echojson_encode($data, JSON_HEX_QUOT);

// "u0022"

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

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

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

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

使用,实例代码如下:

$data=array();

echojson_encode($data);// []

echojson_encode($data, JSON_FORCE_OBJECT);// {}

PHP 5.3.3

JSON_NUMERIC_CHECK: Encodes numeric strings asnumbers.

PHP 5.4.0

JSON_BIGINT_AS_STRING: Encodes large integers astheir 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 (defaultis to escapeasuXXXX).

Available since PHP 5.4.0.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值