深度剖析JSON功能种种问题进行学习探讨

比JSON功能更好,确实很值得升级,而且PHP是向下兼容的,同时还Fixed了200多个bug,并且增加了JSON、Filter、Zip、Date等功能。具体可以查看Ben写的文章。
首页 新闻资讯 行业资讯 深度剖析JSON功能种种问题进行学习探讨

我们基本的解决方案就是在服务器端转化前对中文进行转码,比如JSON功能或者进行进制转换,然后客户端进行相应的转换,我们还是需要寻找更快速的方式,或者最好是PHP的JSON扩展能够直接支持中文,那就最好了。

今天我就小试了一下PHP 5.2 内置了JSON功能,JSON主要是用于Ajax里面的远程访问时候的数据交换格式,可以说是用来在Ajax中取代XML格式的一个轻量级数据交换格式,潜力不容小瞧,因为Google Maps就是抛弃XML而使用JSON的典型例子。#t#

想了解JSON,可以查看这里查看更多文章,同时想了解关于格式定义可以参考JSON官方网站,关于更多JSON的资料请Google。

复制

<?php //对象  class JsonTest{   var $id = 1;   var $name = 'heiyeluren';   var $gender = '男';  }  $obj = new JsonTest;  echo json_encode($obj)."<br /> ";   //数字索引数组  $arr1 = array(1, 'heiyeluren', '男');  echo json_encode($arr1)."<br /> ";   //关联索引数组  $arr2 = array("id"=>1, "name"=>'heiyeluren', "gender"=>'男');  echo json_encode($arr2)."<br /> ";   //多维数字索引数组  $arr3 = array(array(1, 'heiyeluren', '男'), array(1, 'heiyeluren', '男'));  echo json_encode($arr3)."<br /> ";   //关联索引数组  $arr4 = array(array("id"=>1, "name"=>'heiyeluren', "gender"=>'男'), array("id"=>1, "name"=>'heiyeluren', "gender"=>'男'));  echo json_encode($arr4)."<br /> ";  ?>    浏览器输出:    {"id":1,"name":"heiyeluren","gender":""}  [1,"heiyeluren",""]  {"id":1,"name":"heiyeluren","gender":""}  [[1,"heiyeluren",""],[1,"heiyeluren",""]]  [{"id":1,"name":"heiyeluren","gender":""},{"id":1,"name":"heiyeluren","gender":""}]
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

按照JSON功能定义,我们可以发现上面的几个特点:

1. 纯的数字索引是按照JavaScript能够识别的数组来存储的
2. 关联索引数组是按照JavaScript对象的形式来构造的
3. 多维关联索引是按照外围是JavaScript数组,中间的索引数组是对象
4. 无法识别中文,所有的中文字符串显示为空

36    2010-01-08 15:06:35    JSON功能