Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2441901
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类: 系统运维

2011-12-02 10:52:59

由于具体语法以及数据类型的不同,在进行WEB开发的时候,各种语言之间的数据转换总是一个比较头疼的问题。而JSON就充当了一个桥梁的作用,通过对数据进行标准化的字符串转换,就能非常方便的实现原始数据结构级别的共享。

原理和过程都很简单,JSON通过统一标准把复杂数据转化为字符串,来充当桥梁:
  1. 在环境1下,对其特有的数据进行序列化
  2. 将字符串序列传至环境2.
  2. 在环境2下,对字符串进行反序列化得到环境2特有的数据表示。

JSON几乎适用于所有的场合,下面通过服务器端PHP和浏览器端Javascript之间的数据转换为例进行简要介绍。
   

一. 从Javascript到PHP数据传输
  下面是浏览器端收集到的数据,存放在一个复杂的哈希表中,要把这个数据传到服务器端。其中的json2.js提供了标准的JSON操作




二. PHP接收Javascript传回的数据
  下面是服务器端接收浏览器传回的数据进行分析、存储等处理

  1. <?php
  2. //check if the return is correct
  3. if (! isset($_POST['feedback'])) {
  4.     // check if there are feedback
  5.     print "Wrong usage";
  6.     die();
  7. }

  8. $feedback = $_POST['feedback'];
  9. $obj = json_decode($feedback,true);//true is to make the result is array, or it is obj
  10. //then developer could use the data
  11. ?>

三. PHPJavascript数据传输
  这个过程就简单了,因为Javascript脚本就是由PHP产生的,所以不需要发送和接收,JSON序列化字符串直接由PHP生成并放进Javascript文件中,由Javascript在浏览器端进行反序列化。

  1. <?php
  2. $data=array
        (
            "A"=>array('come','go'),
            "B"=>array('go','come')
        );
  3. $source=json_encode($data);
  4. ?>

  5. <head>
  6. <link rel="javascript" type="text/javascript" href="json2.js" />
  7. <title>Summary</title>

  8. <script type="text/javascript">
  9. var source=''; //
  10. window.onload = function(){
        var data=JSON.parse(source);
        //go on with the data
    }



阅读(2459) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~