php使用json代替serialize的想法
星期五, 一月 27th, 2012我需要把一些内容存放在数据库,感觉这些没必要建立字段,于是索性放在数组中序列化后存入数据库.
使用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,
