Home > Backend Development > PHP Tutorial > 用Json实现PHP与JavaScript间数据交换的方法详解_PHP

用Json实现PHP与JavaScript间数据交换的方法详解_PHP

WBOY
Release: 2016-06-01 12:06:10
Original
910 people have browsed it

JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
简而论之,不管是xml还是json都是为了方便在客户端与服务器端交互数据的中转站,特别是用于对象型数据,比如最常见的数组。

下面将分别将数组从php传送给javascript,以及将数组从javascript传送给php示例说明,例子比较简单,明白概念即可。不管从php传送给javascript,还是javascript传送给php,json在传送之前都会将对象扁平化即一维化为字符串。
PHP 向 JavaScript 传值
PHP 文件 json.php
复制代码 代码如下:
     $arr = array(
         'name' => '',
         'nick' => 'Gonn',
         'contact' => array(
             'email' => 'xxxxxxx@163.com',
             'website' => 'http://www.bitsCN.com',
         )
     );
     $json_string = json_encode($arr);
     echo "getProfile($json_string)";
 ?>

光执行这个文件,其结果如下:
复制代码 代码如下:
getProfile({"name":"u5e0cu4e9a","nick":"Gonn",
"contact":{"email":"xxxxxxx@163.com","website":"http://www.bitsCN.com"}})

json.php 是通过 json_encode 函数将数组扁平化,然后发送,相反有个 json_decode 函数。
那么在 JavaScript 如何调用呢?很简单,定义一个变量获取 PHP 传来的 Json,该 Json 具备对象的特性,我们可以用 array.name 这种方式来获取该 Json 的属性。
复制代码 代码如下:

 
 

 

 

 

 
 

运行结果如下:
复制代码 代码如下:

 Gonn
 xxxxxxx@163.com
 http://www.bitsCN.com

JavaScript 向 PHP 传值
json_encode.html
复制代码 代码如下:

 
 
 
 json:From javascript To php
 
 
 

 

    

        
        


        
        


        


        


        


            
            
        


    


 
 

这里javascript扁平化需要一个插件:http://www.json.org/json2.js,通过JSON.stringify(str)将对象扁平化然后传送给php。
注:另有一个http://www.json.org/json.js,对应的是toJSONString方法。
复制代码 代码如下:
var last=obj.toJSONString(); //针对json.js
 var last=JSON.stringify(obj); //针对json2.js

json_encode.php
复制代码 代码如下:
     header('Content-Type: text/html; charset=utf-8');
     $json_string = $_POST["txt_json"];
     //echo $json_string;
     if(ini_get("magic_quotes_gpc")=="1")
     {
         $json_string=stripslashes($json_string);
     }
     $user = json_decode($json_string);

     echo var_dump($user);

     echo '



';
     echo $user->name.'
';
     echo $user->email.'
';
     echo $user->password.'
';
 ?>

这里就需要用到json_decode()这个函数,然后调用其中数据用 $obj->属性即可。
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template