zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    转:配置nodemanager启动weblogic服务器
    SUSE Linux下新建Weblogic 10.3非admin服务
    转weblogic 10.3新建域
    mysql 导出慢
    sql 查询效率
    js isnull 赋值方法
    linux 启动weblogic的某服务报错
    linux下oracle 10g的sqlplus无法使用
    union all 取代 select中的case when 提高查询效率
    php版判断是否为ajax请求的小demo
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/10219930.html
Copyright © 2011-2022 走看看