php使用json代替serialize的想法

2012年 27月 01日 03:49
我需要把一些内容存放在数据库,感觉这些没必要建立字段,于是索性放在数组中序列化后存入数据库. 使用serialize序列化后的字符串很多内容都是不需要的,比如长度信息,数据类型. 感觉平时用的json不错. 打算用json代替, 网上好多结果都是json语serialize的速度比较,这个倒没很大的必要. 需要注意的是 json_decode时返回的是object,需要
json_decode("字符串",ture);
后来发现也不是那么完美.. json_encode会对中文进行编码.如果含有大量的中文,那长度超过了serialize. 这让人很蛋疼,网上给出的办法是对内容进行urlencode,json_enocde后再urldecode
function jsonencode($code){ //新json_encode
 $code = json_encode(urlencodearray($code));//对数组处理
 return urldecode($code);
}
function urlencodearray($data){//urlencode数组
 if(is_array($data)){
 foreach($data as $key=>$val){
 $data[$key] = urlencodearray($val);
 }
 return $data;
 }else{
 return urlencode($data);
 }
}
真是菊花一紧啊.... 再这之后还可以进行一次压缩. 当然,如果不考虑内容的可读性,用其他的扩展也不错,比如msgpack,
tags: