JSON(二):JS对JSON数据的处理、JSON与XML比较
2018-07-19 17:41
99 查看
目录
一、两种数据结构
1、JSON对象
[code]{"name":"tom","age":18,"country":"USA"}
2、JSON数组
[code]["中国","日本","韩国"]
二、字符串、json字符串、json对象
(1)字符串:双引号或者单引号包括的字符。
[code]var str= 'this is string';
(2)json字符串:符合json格式要求的js字符串。
[code]var str = '[{"id":1,"name":"张三","age":20},{"id":2,"name":"李四","age":19}]';
(3)json对象:符合json格式要求的js对象。
[code]var str = {"id":1,"name":"张三","age":20}
三、json和xml比较
1、异同点
相同点:JSON和XML都是数据交换语言,完全独立于任何程序语言的文本格式。
不同点:XML文件格式复杂,比较占宽带,服务器端与客户端解析xml话费较多的资源和时间;JSON是轻量级的数据交换格式。
2、优缺点
XML的优点
- A.格式统一,符合标准;
- B.容易与其他系统进行远程交互,数据共享比较方便
XML的缺点
- A.XML文件庞大,文件格式复杂,传输占带宽;
- B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
- C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
- D.服务器端和客户端解析XML花费较多的资源和时间。
JSON的优点
- A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
- B.易于解析,客户端JavaScript可以简单的通过eval_r()进行JSON数据的读取;
- C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
- D.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护
JSON的缺点
- A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
- B.JSON片段的创建和验证过程比一般的XML稍显复杂。
个人工作业务中xml的使用相对较少,也只有在微信支付的时候使用过;以自身经验来看,JSON在通用性、普及率、创建过程上并没有什么问题。
3、应用场景
一般现在移动APP接口都采用JSON,因为json占宽带小。
在微信开发中,微信接口都是JSON格式的, 微信事件推送是XML。
四、JavaScript中使用JSON
1、json对象和json字符串之间相互转换
[code]//json字符串转换为json对象 var str = '{"name":"李明","age":"12"}'; var obj = JSON.parse(str); //json对象转换为json字符串 var obj ={"name":"李明","age":"12"} var str = JSON.stringify(obj);
2、json对象的常用操作
[code]//json对象操作 var obj ={"name":"李明","age":"12","address":{"province":"山东","city":"青岛"}, "hobby":["reading","football","surfing"]} //读 var name = obj.name;//李明 var province = obj.address.province;//山东 var hobby0 = obj.hobby[0];//reading //写 obj.work="Engineer"; //修改 obj.name="李四"; //删除 delete obj.name; //遍历 for (var c in obj) { //c表示json对象的key console.log(c + ":", obj[c]); }
五、一道JSON笔试题
题目:数据库表内容如下
id | name | age |
1 | 张三 | 20 |
2 | 李四 | 21 |
3 | 王五 | 22 |
请用json进行描述,并处理显示在<table>中。
[code]//实现 var obj = [{"id":1,"name":"张三","age":20},{"id":2,"name":"李四","age":21}, {"id":3,"name":"王五","age":22}]; var table = document.createElement("table"); var tbody = document.createElement("tbody"); table.appendChild(tbody); for(var i =0 ;i<obj.length;i++){ var tr = document.createElement("tr"); for(var d in obj[i]){ var td = document.createElement("td"); td.style.border = "1px solid #ccc"; td.innerHTML = obj[i][d]; tr.appendChild(td); } tbody.appendChild(tr); } document.body.appendChild(table);
参考资料:
[1] . 面试问题之:JSON是什么?
[2] . XML+JSON面试题都在这里.
[3] . 关于JSON的面试题.
[4] . JSON与XML的比较.
[5] . Json对象与Json字符串的转化、JSON字符串与Java对象的转换.
[6] . js json 字符串转json对象.
[7] . JSON菜鸟教程.
相关文章推荐
- js动态添加行hiddenfield保存xml或json 数据 提交给后台处理
- Js处理json数据
- aotocomplete.js 处理返回后台传回的json格式的数据
- (转载)XML和JSON两种数据交换格式的比较
- 关于数据交换格式XML和JSON的比较
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- js处理json以及字符串的比较等常用操作
- JQuery的ajax获取数据后的处理总结(html,xml,json)
- Python3 网络传输数据的处理(json / xml / base64)
- 【js与jquery】jquery对返回json格式数据的处理和解析
- Json数据转化为数据对象的js处理
- php json_decode返回数据js的处理
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- EasyNet.Solr系列:处理xml或者json格式返回数据
- OS中处理解析数据用JSON,XML与json区别
- 使用json把php数据传给js处理
- JS 对java返回的json格式的数据处理方法
- Python3 网络传输数据的处理(json / xml / base64)
- 于数据交换格式XML和JSON的比较
- JS处理JSON数据