PHP6 先修班 JSON实例代码


Posted in PHP onAugust 23, 2008

它是基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一??子集
JSON 主要利用了成?Φ {} ?戆?「??object(物件),用成?Φ [] ?戆???array(?列),
用成?Φ "" ?戆?「髯执??枚禾???^隔各??刀?Y料型?B有 string, number, array, object

下面??蔚?SON格式,?⑹隽艘?? object json ?碛幸??成?T??????成?T??抵杏泻?腥??物件

复制内容到剪贴板代码:
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中包含一???立的成?T query
而query包含一??Array ,???Array中又含了三??Object,前面二??Object含有三??成?T
id,type,title,而最後一??Object array 包含一???列,如此解??明白吧?

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

??硬僮髻Y料?r更?便,不需要和??的DOM打交道,所需要的?料可以很??的取得
例如上面的例子 json.query[ i ].title 如此就可以取得第i?的title?群?闹
PHP的?展是很迅速,?程式界??SON?一知半解?r或者全然不知何??SON?r
PHP已?在最新的版本5.2.0中?入核心,?K且????B是?⒂茫?噍^於其他的Script?言
PHP可?一??先,在5.2.0版本中??SON??作了???函? json_decode() 和 json_encode()
前者是??SON格式的字串?原成PHP原生的?列
後者?t是??HP原生?列??成JSON格式的字串
不?,由於Javascript支援Unicode,如果在存取?料??r使用非Ascii的字元,如中、日、?
需要?⒆衷?????Q成UTF8,不然??json_encode()後的字串???y?
========================================================
??上一篇??谓榻BJOSN後
本篇就???作如何使用JOSN
下面?例使用需要使用MySQL4.1以上版本
??全程?裼?tf8
承接上一篇的?料格式,表中共有三???谖?d,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('?不上?料??);
//??褓Y料?
mysqli_select_db($conn,'mydata') or die('不能??料??);
//?定??????t,不懂上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);
//?料表中只放三??料,所以在第三??r不需要在尾巴加上 ",",?得,最後一??料不用加上","
if ($i<3)
{
$json .= ",";
}

}
//?①Y料包??列中
$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
//?⒆执?獯a
$s_JSON_Decoded = json_decode($json,true);
//取回?料
foreach ($s_JSON_Decoded as $row)
{
foreach ($row as $rowa)
{
echo $rowa['title']."<br>";
}

}
?>
</body>
</html>
????蔚难菥?後
相信大家??SON?玩意有更深一?拥牟t解
?然JSON的??貌恢皇枪?例中那???
有?趣一起研究吧

PHP 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
PHP中的integer类型使用分析
Jul 27 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php curl模拟post请求小实例
Nov 13 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
thinkphp制作404跳转页的简单实现方法
Sep 22 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
php的curl实现get和post的代码
Aug 23 #PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 #PHP
php过滤危险html代码
Aug 18 #PHP
php htmlentities和htmlspecialchars 的区别
Aug 18 #PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 #PHP
php数组应用之比较两个时间的相减排序
Aug 18 #PHP
php中的数组操作函数整理
Aug 18 #PHP
You might like
thinkphp实现数组分页示例
2014/04/13 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
php实现Mysql简易操作类
2015/10/11 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
Javascript学习指南
2014/12/01 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
如何清空python的变量
2020/07/05 Python
社会发展项目建议书
2014/08/25 职场文书
超市开店计划书
2014/09/15 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
校本课程教学计划
2015/01/19 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript