【json】慕课网json学习
2015-08-06 20:55
573 查看
Json简介
第一种类型是标量 scalar第二种类型是序列 sequence
低三种类型是映射 mapping
JSON 即javascript object notation
JSON四个基本规则:
1、并列数据间用逗号 , 分隔;
2、映射用冒号 : 表示;
3、并列数据的结合(数组)用方括号 [ ] 表示;
4、映射的结合(对象)用大括号 {} 表示;
Json优点:
简洁,易于读写,占用带宽小;支持多语言;
Json缺点:
1、要求字符集必须是Unicode,受约束性强;
2、语法过于严谨,必须遵循JSON语法四个原则;
对比
XML
标准通用标记语言 SGML的子集, 适合web传输,结构化数据;
JSON
Serialize
序列化变量;
Array()
基本数据类型,不能用于数据的传输和交替;
JSON的使用:
JSON和serialize数据格式的异同:
同:
1、都是把其他数据类型转换成一个可以传输的字符串
2、都是结构性数据
异:
1、serialize序列化后的数据格式保存数据原有类型
2、JSON数据格式更简洁
PHP中操作JSON的重要函数;
加密: Json_encode()
解密: Json_deconde()
什么是索引数组和关联数组:
索引数组: 没有明确key的数组;
关联数组:明确key作为键值对;
数组到JSON数据格式的转换
JSON引号必须用双引号
[code]$json = json_encode($数组)
JSON转换成数组:
[code]$数组 = json_decode($数组,true) //默认false,转换成对象类型
问:对象类型怎么更好的转换到JSON数据格式,以便交互?
实战一 : 使用js ajax初始化网站基本信息:
1、jquery使用;
2、javascript 调用jquery ajax 通信;
3、在js客户端解析 服务器端传来的Json 数据,转换成js json对象,
4、取得数据后进行解析在DOM中进行展示
[code]$("document").ready(function(){ var urk = "server.php?inajax=1 …… });
[code]html文件: <html> <head> <title>第二个实战</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <script type="text/javascript" src="jquery-1.9.1.min.js"></script> <script type="text/javascript"> $("document").ready(function() { var url = "shizhan2.php"; var data = {"do": "first"}; $.getJSON(url, data, function(res) { $("#username").val(res.username); $("#password").val(res.password); }); var data = {"do": "second"}; $.getJSON(url, data, function(res) { $("#members").val(res.third.members.username); }); var data={"do":"third"}; $.getJSON(url,data,function(res){ $("#address").val(res.address[1].username); }); }); </script> </head> <body> <h2>一维数组巩固练习</h2> <input type="text" name="username" id="username"/><br/> <input type="password" name="password" id="password" /> <h2>多维数组实战(展示一组会员信息)</h2> <textarea id="members"></textarea> <h2>对象实战(放一组地址信息)</h2> <textarea id="address"></textarea> </body> </html> ---------- 服务器端 <?php //1 $member['username'] = "mukewang"; $member['password'] = "mukewang"; $do = $_REQUEST['do']; //2 $members['1']['username'] = "幕课网"; $members['1']['password'] = "mukewang"; $members['2']['username'] = "袁明贺"; $members['2']['password'] = "haha"; $members['2']['address'] = "北京市朝阳区"; $members['third']['members']['username']="我是第三个用户名"; //3 class addressClass { public $address = array(); public function setAddress($array) { $this->address = $array; } public function getAddress() { return $this->address; } } $addressObj = new addressClass(); $addressObj->setAddress($members); switch ($do) { case "first": echo json_encode($member); break; case "second": echo json_encode($members); break; case "third": echo json_encode($addressObj); break; } ?>
[code]登录实现方法: 1、存session 2、存数据库
相关文章推荐
- PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
- JavaScript基础----25JS事件详解-事件对象
- JavaScript基础----24JS事件详解-事件处理
- JavaScript基础----23JS事件详解-事件流
- 浅谈jsp、freemarker、velocity区别
- JavaScript基础----22Javascript-DOM EventListener
- JavaScript基础----21Javascript-DOM操作CSS
- JavaScript基础----20Javascript-DOM操作HTML
- JavaScript基础----19Javascript-DOM简介
- JavaScript基础----18Javascript事件
- JavaScript基础----17Javascript异常捕获
- JavaScript基础----16Javascript函数-局部变量和全局变量
- JavaScript基础----15Javascript函数-带返回值的函数
- JavaScript基础----14Javascript函数-带参数的函数
- JavaScript基础----13Javascript函数-调用函数
- JavaScript基础----12Javascript函数-定义函数
- JavaScript基础----11Javascript函数-了解函数的用途
- JS学习第四天----可选的分号
- JSON解析
- JSP基本语法