首页 > 资讯列表 > 编程/数据库 >> PHP

PHP6 先修班 JSON实例代码

PHP 2014-12-13 11:45:06 转载来源: 网络整理/侵权必删

先简单的谈一下什么是 JSON JSON 全称 JavaScript Object Notation是一种非常轻量级的资料交换格式 它是基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集 JSON 主要利用了成对的 {} 来包住各个object(物件),用成对的 [] 来包各个array(阵列), 用成对的 "" 来包住各字串,用逗号来区隔各变数而资料型态有 string, number, array, object 下面简单的JSON格式,叙述了一个 object json 拥有一个成员变数,这个成员变数中有含有三个物件 复制内容到剪贴板代码:

先简单的谈一下什么是 JSON JSON 全称 JavaScript Object Notation是一种非常轻量级的资料交换格式
它是基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集
JSON 主要利用了成对的 {} 来包住各个object(物件),用成对的 [] 来包各个array(阵列),
用成对的 "" 来包住各字串,用逗号来区隔各变数而资料型态有 string, number, array, object

下面简单的JSON格式,叙述了一个 object json 拥有一个成员变数,这个成员变数中有含有三个物件

复制内容到剪贴板代码:
var json = {
'query' : [
{'id':'1','type':'a','title':'PHP 5.2.0 的新功能 JSON decoder & encoder'},
{'id':'2','type':'b','title':'JSON 全称 JavaScript Object Notation'},
{'array': ['A', 'B','C', 'D', 'E']}
]
};
如此,我们可以获得一个叫做 json 的Object,而这个json Object中包含一个独立的成员 query
而query包含一个Array ,这个Array中又含了三个Object,前面二个Object含有三个成员
id,type,title,而最后一个Object array 包含一个阵列,如此解释还明白吧?

但是要怎么用呢?
很简单
alert('I have ' +json.query.length + ' object.');
//alert I have 3 object.
alert('type='+json.query[1].type+'rntitle'+json.query[1].title);
//alert type=b title=JSON 全称 JavaScript Object Notation
alert('阵列索引3='+json.query[2].array[3]);
//alert 阵列索引3=D

这样操作资料时更简便,不需要和复杂的DOM打交道,所需要的资料可以很轻松的取得
例如上面的例子 json.query[ i ].title 如此就可以取得第i笔的title内含的值
PHP的发展是很迅速,当程式界对JSON还一知半解时或者全然不知何为JSON时
PHP已经在最新的版本5.2.0中纳入核心,并且预设状态是启用,相较于其他的Script语言
PHP可谓一马当先,在5.2.0版本中为JSON实作了两个函数 json_decode() 和 json_encode()
前者是将JSON格式的字串还原成PHP原生的阵列
后者则是将PHP原生阵列编译成JSON格式的字串
不过,由于Javascript支援Unicode,如果在存取资料库时使用非Ascii的字元,如中、日、韩
需要将字元编码转换成UTF8,不然经过json_encode()后的字串会是乱码
========================================================
经过上一篇简单介绍JOSN后
本篇就来实作如何使用JOSN
下面范例使用需要使用MySQL4.1以上版本
编码全程采用utf8
承接上一篇的资料格式,表中共有三个栏位id,type,title
资料表规格如下
复制内容到剪贴板代码:
CREATE TABLE `news` (
`id` int(10) unsigned NOT NULL auto_increment,
`type` varchar(255) NOT NULL default '',
`title` varchar(64) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
复制内容到剪贴板代码:
<?php
//建立连线
$conn = mysqli_connect("localhost", 'root', '')or die('连不上资料库');
//选择资料库
mysqli_select_db($conn,'mydata') or die('不能选资料库');
//设定连线编码规则,不懂上google找
mysqli_query($conn,'SET NAMES 'utf8'');
//取出资料
$results = mysqli_query($conn,'SELECT id,type,title FROM news');
//Josn字串
$json = '';
//因为是范例,所以自行控制回圈
$i=0;
while($row = mysqli_fetch_assoc($results))
{
$i++;
$json .= json_encode($row);
//资料表中只放三笔资料,所以在第三笔时不需要在尾巴加上 ",",记得,最后一笔资料不用加上","
if ($i<3)
{
$json .= ",";
}

}
//将资料包进阵列中
$json = '{"query":[ '.$json.']}';?>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="zh-tw" lang="zh-tw" >
<head>
<title>Json范例</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="generator" content="mamba" />
</head>
<body>
<script type="text/javascript">
var json = <?php echo $json?>;
alert('I have ' +json.query.length + ' object.');
alert('type='+json.query[1].type+'rntitle'+json.query[1].title);
//上一篇简介中使用过
</script>
还原Json<br>
<?php
//将字串解码
$s_JSON_Decoded = json_decode($json,true);
//取回资料
foreach ($s_JSON_Decoded as $row)
{
foreach ($row as $rowa)
{
echo $rowa['title']."<br>";
}

}
?>
</body>
</html>
经过简单的演练后
相信大家对JSON这玩意有更深一层的了解
当然JSON的应用不只是范例中那么简单
有兴趣一起研究吧

 


标签: PHP6 先修班 JSON 实例 代码


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持