json与js
-
因为JSON源于JS,所以JSON在JS中具有得天独厚的优势;
-
因为JS是web环境下B端开发语言的不二之选,所以JSON在WEB中大行其道;
-
优势:
1. JS的语法子集,合法的JSON代码在JS中也是合法的JS代码,内嵌JSON传输随处可见,jsonp的原理便是基于此前提的;
2. 解析JSON数据的成本足够小,eval,json.js, JSON.parse(str)
3. 各种封装库直接透传json格式,导致json诞生之后迅速取代xml在数据传输中的地位;
4. JSON序列化在JS中也非常容易,json.js,JSON.stringify(json/*, null, "\t"*/);
eval解析json问题:
var str = “{“name”:“value”}”;
// 方法1
var json = eval(“(” + str + “)”); // 存在诸如 XSS 攻击风险
// 方法2
var json;
eval("json = " + str);
JSON在其他语言中的序列化问题
-
这里不说解析(反序列化),只要是”合法的”JSON数据,解析库使用的正确,并且二者相匹配,不应该有问题;
-
关于格式化问题:格式化是为了方便调试,生产环境中,应避免使用;
-
nodejs: 和浏览器中基本一致;
-
PHP: json_encode,json_decode(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
-
Ruby:
@json = @data.to_json
,@data = JSON.parse(json)
-
Java:
-
JSON-java: JSONXXX.fromObject(str), obj.toString()
JSONObject jsonObj = JSONObject.fromObject(jsonString);
JSONArray jsonArr = JSONArray.fromObject(jsonString);
- google-gson: gson.toJson, gson.fromJson
JSON与其他语言之间的类型对应关系
| json | js | php | ruby | java |
| — | — | — | — | — |
| boolean | boolean | boolean | true,false | boolean |
| number | number | integer, float | Integer, Float | int, float, double |
| string | string | string | String | String |
| array | Array | Array | Array | [] |
| object | Object | Array | Hash | Object(from class) |
| null | null | null | Nil | null |
数据类型问题为何如此重要?
-
弱类型语言不代表没有类型
-
最新的JS引擎(V8等),约束类型有利于性能
-
让数据传输协议无歧义,简化约定
-
让两端的代码处理逻辑简化,避免各种异常的问题
-
严格遵守类型约定,可以规避很多容易被忽视的问题
-
想一想各种二进制的数据传输协议,类型不是它们特有的
严格来说,JSON不是JavaScript的子集;
-
“
\u2028
“,LINE SEPARATOR,下面的字符被认为是行终止符: -
\u000A
- Line Feed
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。