zoukankan      html  css  js  c++  java
  • Zend Framework学习之Json使用

    JSON分隔符及意义

    {}    用于实现对象的包含,对象都包含在大括号中
    ,    逗号用于分隔对象的不同属性,或者数组的元素
    []    用于存放数组,数组将存放在中括号中
    :    用于表示键/值对的值,冒号前为键,冒号后为该键的值

    JSON示例

     1 {
     2     "addressbook":{
     3         "name":"Mary Lebow",
     4         "address":{
     5             "street":"5 Main Street",
     6             "city":"San Diego,CA",
     7             "zip":91912
     8         },
     9         "phoneNumbers":[
    10             "619 332-3452",
    11             "664 223-4667"
    12         ]
    13     }
    14 }

    使用JSON

    语法:$json = Zend_Json::encode($phpNative);
    说明:其中,参数$phpNative为PHP常见的数据类型,可以是数组、对象或者其他类型的数据。
    函数返回值$json为符合JSON格式的一个字符串

    示例:

    <?php
    require_once("Zend/Json.php");
    $temp = array(
        "a"=>0,
        "b"=>1,
        "c"=>array(
            "c-1"=>21,
            "c-2"=>22,
            "c-3"=>23,
        ),
        "d"=>3
    );
    $json = Zend_Json::encode($temp);
    echo "临时数组内容为:";
    echo "<pre>";
    print_r($temp);
    echo "</pre>";
    
    echo "转换为JSON格式内容为:";
    echo "<pre>";
    print_r($json);
    echo "</pre>";

    结果为:

    View Code
    临时数组内容为:
    
    Array
    (
        [a] => 0
        [b] => 1
        [c] => Array
            (
                [c-1] => 21
                [c-2] => 22
                [c-3] => 23
            )
    
        [d] => 3
    )
    
    转换为JSON格式内容为:
    
    {"a":0,"b":1,"c":{"c-1":21,"c-2":22,"c-3":23},"d":3}

    将JSON解码为普通数据

    语法:$phpNative = Zend_Json::decode($json);

    示例:

    <?php
    require_once("Zend/Json.php");
    $json = "{
        \"addressbook\":{
            \"name\":\"zhangsan\",
            \"address\":{
                \"street\":\"Chang an jie\",
                \"city\":\"BeiJing\",
                \"zip\":100001
            },
            \"phoneNumbers\":[
                \"010-12345678\",
                \"010-11111111\"
            ]
        }
    }";
    echo "解码前为:";
    echo "<pre>";
    print_r($json);
    echo "</pre>";
    
    $native = Zend_Json::decode($json);
    
    echo "解码后为:";
    echo "<pre>";
    print_r($native);
    echo "</pre>";

    输出结果为:

    View Code
    解码前为:
    
    {
        "addressbook":{
            "name":"zhangsan",
            "address":{
                "street":"Chang an jie",
                "city":"BeiJing",
                "zip":100001
            },
            "phoneNumbers":[
                "010-12345678",
                "010-11111111"
            ]
        }
    }
    
    解码后为:
    
    Array
    (
        [addressbook] => Array
            (
                [name] => zhangsan
                [address] => Array
                    (
                        [street] => Chang an jie
                        [city] => BeiJing
                        [zip] => 100001
                    )
    
                [phoneNumbers] => Array
                    (
                        [0] => 010-12345678
                        [1] => 010-11111111
                    )
    
            )
    
    )



    说明:
    在使用此方法对JSON内容进行解码时,可以将其解码为数组,也可以将其解码为对象。
    具体有Zend_Json::decode()方法的第二个参数决定。
    语法格式如下
    $phpNative = Zend_Json::decode($json,Zend_Json::TYPE_OBJECT);

    上个例子解码为对象后的结果为

    View Code
    解码后为:
    
    stdClass Object
    (
        [addressbook] => stdClass Object
            (
                [name] => zhangsan
                [address] => stdClass Object
                    (
                        [street] => Chang an jie
                        [city] => BeiJing
                        [zip] => 100001
                    )
    
                [phoneNumbers] => Array
                    (
                        [0] => 010-12345678
                        [1] => 010-11111111
                    )
    
            )
    
    )

    小结:

    Json的使用还是比较简单的,在接口应用上需要Json。它可以在不同的语言中共用。可以灵活的传递数据。作用与XML类似,但是比XML要节省带宽。

  • 相关阅读:
    HTML5本地存储应用sessionStorage和localStorage
    [js高手之路] 设计模式系列课程
    [js高手之路] vue系列教程
    [js高手之路] vue系列教程
    [js高手之路] vue系列教程
    [js高手之路] vue系列教程
    [js高手之路] vue系列教程
    [js高手之路] vue系列教程
    js单页hash路由原理与应用实战
    javascript面向对象的常见写法与优缺点
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2965653.html
Copyright © 2011-2022 走看看