JSON格式化与serialize序列化,jsonserialize


一、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就可以完成强大的数据交互功能。

http://www.bkjia.com/PHPjc/1125519.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1125519.htmlTechArticleJSON格式化与serialize序列化,jsonserialize 一、JSON格式化 1. JSON是什么 JSON是一种数据的存储格式,用来沟通客户端Javascript和服务端PHP的交互。...

09-16 04:22