PHP json_decode返回NULL缘由及解决方法

在工做中,常用json_encode和json_decode来序列化数组成字符串(从而方便在不一样页面传递数组变量)。json

可是今天发现 json_decode返回NULL,分析代码后发现数组元素中含有[符号,而[符号在json字符串中是数组的定界符,因此会出错。数组

为解决这个问题,须要将原来的数组在json_encode后进行base64_encode转换,这样就不会有问题了,可是base64_encode后字符串长度太大,因此还须要和gzcompress一块儿使用。函数

为方便,作成自定义函数:code

//序列化数组为字符串
function myArr_serialize($arr){
   return base64_encode(gzcompress(json_encode($arr)));
}
//反序列化字符串为数组
function myArr_unserialize($str)
{
	return json_decode(gzuncompress(base64_decode($str)));
}
相关文章
相关标签/搜索