php处理json数组
⼀、⊰偷偷的告诉你,这是⼀个很不谨慎就会踩得坑⊱
如下代码(看了⼀下很简单,没⽑病啊,⽼铁)
$arr = array(
'0'=>'a','1'=>'b','2'=>'c','3'=>'d'
);
echo json_encode($arr);
但是结果是
["a","b","c","d"]
需求是要返回JSON对象,是这样似的
{"0":"a","1":"b","2":"c","3":"d"}
You can do it,you nee add
$arr = array(
'0'=>'a','1'=>'b','2'=>'c','3'=>'d'
);
phpjson格式化输出
echo json_encode((object)$arr);
输出结果
{"0":"a","1":"b","2":"c","3":"d"}
bingo,搞定
总结:PHP数组=>json数组/对象,但是PHP对象=>json对象,so如果负责接⼝⼀类的开发的话,建议json_encode()之前可以先(object)强制转换⼀下。
⼆、客户端传输json
1,如果客户端提交的是json类型的元数据,后端php获取后会⾃动转为数组;
2,如果客户端提交的是json格式的字符串,后端php获取后如果字符串中引号带有\反斜杠,需要⽤  stripslashes()  函数给预定义字符去掉\反斜杠,再使⽤json_decode()转为数组(第⼆个参数设置为true)或者object(默认);
3,如果客户端提交的是json格式的字符串,后端php获取后如果字符串中引号没有\反斜杠,json_decode()转为数组(第⼆个参数设置为true)或者object(默认);
4,addslashes()是stripslashes()的反函数;
5,json 字符串中的键值必须⽤双引号("") 包裹起来, 单引号或者不⽤引号都不能正确解析, 结果会是 null

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。