json 是一个很好的数据结构现在已经广泛用在网络数据传输上 php 自身待了两个和json 相关的函数 json_encode 和 json_decode 这两个函数的具体用法 网上有很多相关的文章 本文主要介绍 用json_encode 时 中文无法转换的解决方案 本文假设 文件所用的编码为gb2312; 先写出所需的数组 <?php $json = array ( 0 => array ( 'id' => '13', 'name' => '乒乓球', ), 1 => array ( 'id' => '17', 'name' => '篮球', ) ) ?> 如果直接用函数json_encode <?php echo json_encode($json); ?> 结果为:
Browsing the archives for the json tag
刚做完一个小的使用Ajax的项目。整个小项目使用JavaScript做客户端,使用PHP做服务器端、利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式。做完后基本做一个简单总结,简单分析一下使用XML作为传输格式的优劣。 [ XML ] 使用XML作为传输格式的优势: 1. 格式统一, 符合标准 2. 容易与其他系统进行远程交互, 数据共享比较方便 缺点: 1. XML文件格式文件庞大, 格式复杂, 传输占用带宽 2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护 3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码 4. 服务器端和客户端解析XML花费资源和时间 [ JSON ] 那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工具包。 本文主要是对JS操作JSON的方法做下总结。 在JSON中,有两种结构:对象和数组。 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不需要。例如: var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"}; 2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 例如:
<HTML><HEAD><TITLE> New Document </TITLE> <script language="javascript"> function e(){ var json=[{"kl_id":"2","kl_title":"Test date","kl_content":"Testdate","kl_type":"1","id":"1"},{"kl_id":"2","kl_title":"Test","kl_content":"Test","kl_type":"1","id":"2"}] var str = ""; for (var one in json){ for(var key in json[one]){ str += json[one][key] + ","; } } document.form.txtName.value = str; } </script> </HEAD> <BODY> <form name="form"> <a href="#" onclick="e();">Click</a> <br> <input name="txtName" value="" type="text" size="50"> </form> </BODY> </HTML>
centos5下面yum源中没有json,只能通过编译了。 #cd /usr/local/src 1.下载源文件包: wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.0.tar.bz2 2.解压 tar xvjf php-json-ext-1.2.0.tar.bz2 使用tar命令解压一定要确认已经安装过bzip2,否则会提示 "tar: bzip2: Cannot exec: No such file or directory" 错误. 3.进入目录 cd php-json-ext-1.2.0 4.初始化PHP环境 phpize
整理两个现成的函数:json_decode、json_encode 说明:其中json_encode 表示把常用的传统的数据类型如对象、数组、关联数组等转成JSON字符串。其实与JAVA里面的那个工具是一样的。而json_decode刚好相反。 解决需求1.修改数据表的时候动态生成一个JSON片段。供JS调用。 服务器端的代码: function plan2() { $link = mysql_connect("localhost","root","123") or die("<font color=red>无法建立起来连接。错误信息如下</font>"); mysql_query("SET NAMES gbk"); mysql_select_db("phpcms",$link) or die("<font color=red>在服务器上面无法找到此请确认已建立此DB "); $result = mysql_query("select id,uuid,uuidtable from dytable "); $num_rows = @mysql_num_rows($result); //看一下返回多少行记录 if ($num_rows == 0) { $b = array(); //这样长度为0 返回的是一个空数组 }else{ while ($row = mysql_fetch_array($result,MYSQL_ASSOC)){ $b[] = $row; [...]
json简单应用 $arr = array('name' => '高东臣', 'age' => 23); $json_str = json_encode($arr); echo 'var Me = '.$json_str; 保存为4.php <script type="text/javascript" src="4.php"></script> <script type="text/javascript">alert(Me.name);</script> 保存为1.htm 这样打击会看到PHP的交互了 其实JSON和XML差不多都是.利用JS来交互的.
jQuery 是一个优秀的 Javascript 框架,对 js 进行了优秀的包装,提供了许多方便的功能。jQuery 对 ajax 的包装也堪称优秀。
jQuery 可以以 json 文件传输协议来传输数据(类似 xml,而且大有取代 xml 的趋势),而网站后台代码必须与之配合使用。PHP 是用 json_encode 函数来对返回的数组数据进行编码的,但这个函数只有 PHP5.2版本以上才支持。
JavaScript这种编程语言首要的目的是为Netscape Navigator提供一种页面脚本语言。它仍被普遍的认为是Java的一个子集,但事实并非如此。它是一种语法类似c语言并且支持面向对象的Scheme-like语言。JavaScript使用了ECMAScript语言规范第三版进行了标准化。