美文网首页
json_encode( )和json_decode( )

json_encode( )和json_decode( )

作者: 崩鲨卡拉卡 | 来源:发表于2018-08-08 21:06 被阅读0次

    介绍【JSON】数组:JSON 语法是 JavaScript 语法的子集。
    JSON 数组在中括号中书写:
    数组可包含多个对象:对象 "sites" 是包含三个对象的数组。每个对象代表一条关于某个网站(name、url)的记录。

    {
    "sites": [
    { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"微博" , "url":"www.weibo.com" }
    ]
    }
    

    可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):

    读取:sites[0].name;
    赋值:sites[0].name="菜鸟教程";
    

    PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。
    一、索引数组和关联数组:

    【索引数组】:$arr = Array('one', 'two', 'three');
    【关联数组】:$arr=('1'=>'one','2'=>'two','3'=>'three')
    

    二、json_encode

    索引数组:

    
    $arr = Array('one', 'two', 'three');
     
    echo json_encode($arr);
    
    输出:["one","two","three"]
    
    

    关联数组:

    $arr=Array('1'=>'one','2'=>'two','3'=>'three');
    echo   $arr;
    输出:{"1":"one","2":"two","3":"three"}      //由数组变为对象
    
    

    三、json_decode( )
    该函数用于将json文本转换为相应的PHP数据结构。
    一般,json_decode()总是返回一个PHP对象,而不是数组。比如:

    $json='{"one":111,"two":2222,"three":333}';
    var_dump(json_decode($json));
    
    输出:
    object(stdClass)#1 (5) {
       ["a"] => int(1)
      ["b"] => int(2)
      ["c"] => int(3)
      ["d"] => int(4)
      ["e"] => int(5) 
    }
    

    如果想强制生成关联数组:json_decode($json,true)必须加一个参数【true】

    四、注意:
    下面三种json写法都是错的

    $bad_json = "{ 'bar': 'baz' }"; //名和值都必须 使用 " "

    $bad_json = '{ bar: "baz" }'; //名未使用 " "

    $bad_json = '{ "bar": "baz" }'; //正确方式

    相关文章

      网友评论

          本文标题:json_encode( )和json_decode( )

          本文链接:https://www.haomeiwen.com/subject/iiqfbftx.html