• 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'
    );
    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

  • 相关阅读:
    POJ 3140 Contestants Division (树dp)
    POJ 3107 Godfather (树重心)
    POJ 1655 Balancing Act (树的重心)
    HDU 3534 Tree (经典树形dp)
    HDU 1561 The more, The Better (树形dp)
    HDU 1011 Starship Troopers (树dp)
    Light oj 1085
    Light oj 1013
    Light oj 1134
    FZU 2224 An exciting GCD problem(GCD种类预处理+树状数组维护)同hdu5869
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/10219930.html
Copyright © 2020-2023  润新知