关注Java架构栈,干货天天都不断哦!
JSON概述
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构,使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
Js中的数组和对象?
数组:[1,2,3]
对象:{name:”张三”, age: 20}
复杂数组:[{name:”张三”, age: 20}, {name:”李四”, age: 30}, 1]
复杂对象:{total:50, data: [{name:”张三”, age: 20}, {name:”李四”, age: 30}]}
Json本质:特殊格式的字符串,特殊在字符串的结构,和js中的数组和对象一样一样的!
数组:[1,2,3]数组格式的json串:”[1,2,3]”
对象:{name: “张”, age: 20}
对象格式的json串:'{name: “张”, age: 20}’
数组中放对象:[{id:”11″,name:”北京”}, {id:”12″,name:”成都”}]
数组中放对象的json格式:'[{id:”11″,name:”北京”}, {id:”12″,name:”成都”}
为什么需要JSON
ajax就是通过js代码,完成和后台数据的交互,但是,往往后台响应的结果的数据格式都比较复杂,例如List、Map等,这些数据js是不能够识别的,因为js和java是不同的语言!
因此需要一种通用的数据格式,即一种通用的“语言”!如xml、json,这两个本质还是字符串!任何语言都支持字符串!
json是为了完成前台和后台的复杂数据交换的中间桥梁!
Java:List ===> json ===> 响应给ajax ===> 把json转js对象或数组 ===> 通过DOM技术操作页面元素
json和js对象的区别:唯一的区别是json是字符串,不可以直接调用字符串的属性来获取json中的“属性”对应的值,如果想获取到json字符串中的属性的值,需要先将json转换为js对象。
后台的List、Map、User、数组等对象可以转换为json格式的字符串,然后使用js将json字符串转换为js对象,然后操作这些数据,最终达到无刷新更新页面中的部分内容。
JSON与JS对象之间的相互转换
1.JSON转JS对象1.1 使用JS中的内建函数eval转换
eval函数,不仅可以将json格式的字符串,转换为js对象,还可以用于一些计算,和js代码的动态拼接
由于eval函数可以解析js代码java对象转json对象,并执行,因此存在风险。
1.2 使用JSON对象将JSON字符串转换成JS对象
var txt = "[1,23]";
var arr = JSON.parse(txt); // 将json串转换为js对象
var txt = JSON.stringify(arr); // 将js对象转换为json串,调试的时候,方便查看对象的结构
JSON对象:浏览器自带的一个JS对象,对象中有一些方法可供使用
使用JSON对象中的parse方法可以将json字符串转换成js对象java对象转json对象,但是JSON对象对json字符串的格式要求比较严格:key值一定要使用双引号引起来,字符串类型的值也必须要使用双引号
js对象 ===> json字符串:JSON.stringify(js对象);
2.js对象转JSON
有时我们需要查看对象的结构!一般采用的方式是alert(obj),但是只能看到下图所示的样子:
将js对象转换成json字符串的方法JSON.stringify(obj),方便查看对象的结构!
总结
以上就是波哥对JSON技术的大概总结,希望能让你有所收获哦!还有什么问题的小伙伴可以私信波哥哦!
END
近期课程上新:
Java基础|Javaweb基础|Java高级框架|微服务架构|TiDB分布式数据库入门最佳实践|VUE全面剖析及前后端联动实战|23种设计模式|企业级项目实战|Java面试宝典
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688