• 技术文章 >php教程 >php手册

    JSON格式化与serialize序列化 - 璐小璐

    2016-05-20 10:14:32原创2632

    一、JSON格式化

    1. JSON是什么

    JSON是一种数据的存储格式,用来沟通客户端Javascript和服务端PHP的交互。我们把用PHP生成JSON后的字符串传给前台Javascript,Javascirpt就可以很容易的将其反JSON然后应用。

    2. 如何使用JSON

    PHP操作JSON可以使用json_encode()和json_decode()两个函数——一个编码,一个解码。json_encode()可以将数组转换成json格式的文本数据,方便存储和读取,而json_decode()可以直接将json数据转换成数组,方便调用。

    
        $arr = array(
            'name'    ='刘璐',
            'nick'    ='璐小璐',
            'age'     ='26',``
            'contact' =array(
                'phone'   ='13718136109',
                'address' ='Beijing ifdoo'
            )
        );
    
        $str = json_encode($arr);
        echo "getProfile($str)";
    ?>
    

    结果为:
    {"name":"\u5218\u7490","nick":"\u7490\u5c0f\u7490","age":"26","contact":{"phone":"13718136109","address":"\u5317\u4eac \u5f97\u8c46"}}

    3. JSON格式的数据与WEB前端JS完成异步交互过程

    PHP使用json_encode()将数组转换成json格式的数据后,此json字符串相当于JavaScript中的对象,赋给一个变量后,就可以对这个数组进行操作了。

      
    

    4. 实例

    index.html

    <html>
    <head>
        <title>json demotitle>
        <script type="text/javascript">
        function getProfile(str) {
            var arr = str;
            document.getElementById('nick').innerHTML = arr.nick;
        }
        script>
    head>
    <body>
        <div id="nick">div>
    body>
    
    <script type="text/javascript" src="./profile.php">script>
    html>
    

    profile.php

    
        $arr = array(
            'name'    => '刘璐',
            'nick'    => '璐小璐',
            'age'     => '26',
            'contact' => array(
                'phone'   => '13718136109',
                'address' => 'Beijing ifdoo'
            )
        );
    
        $str = json_encode($arr);
        echo "getProfile($str)";
    ?>
    
    • html页面调用PHP文件

      a.php中的echo输出的是javascript代码。

    • php页面调用js文件

      a.php中的echo js里的方法即可。

    二、serialize序列化

    1. serialize 是什么

    serialize是将变量序列化,返回一个具有变量类型和结构的字符串表达式。

    2. 如何使用serialize

    使用PHP的serialize和unserialize将数组进行序列化和反序列化。

    
        $arr = array( 
            "u1" => array( 
                "gameName" => "德乙", 
                "homeName" => "比勒费尔德", 
                "guestName" => "不伦瑞克", 
                "endTime" => "2015-08-21" 
            ), 
            "u2" => array( 
                "gameName" => "英超", 
                "homeName" => "水晶宫", 
                "guestName" => "阿斯顿维拉", 
                "endTime" => "2015-08-22" 
            ) 
        ); 
        echo serialize($arr);
    ?>
    

    结果为:

    a:2:{s:2:"u1";a:4:{s:8:"gameName";s:6:"德乙";s:8:"homeName";s:15:"比勒费尔德";s:9:"guestName";s:12:"不伦瑞克";s:7:"endTime";s:10:"2015-08-21";}s:2:"u2";a:4:{s:8:"gameName";s:6:"英超";s:8:"homeName";s:9:"水晶宫";s:9:"guestName";s:15:"阿斯顿维拉";s:7:"endTime";s:10:"2015-08-22";}}

    其中:

    a:2说明这是个有两个元素的数组(array);
    i:0指序列索引;
    a:4指有4个字段;
    s:8:"gameName"说明这是有8个字符的字符串(string)

    总结: PHP的serialize将数组序列化后是便于存储,而JSON格式的数据不仅便于存储还能跟其他语言如javascript读取。如果前后端交互使用比较多的话建议使用JSON,结合PHP、Javascript、JSON以及Ajax就可以完成强大的数据交互功能。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:JSON格式化与serialize序列化 - 璐小璐
    上一篇:微信公众平台开发入门教程(图文) - 贝创工作室 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php 简单的缓存全站函数介绍• 学习PHP重定向的三种方法• 关于UEditor编辑器远程图片上传失败的解决办法• php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)• 建立文件交换功能的脚本(二)
    1/1

    PHP中文网