首页 >>  正文

json数据格式如何处理

来源:baiyundou.net   日期:2024-09-23

整理 | 屠敏

出品 | CSDN(ID:CSDNnews)

编程语言界,纷争不断,争论不休。

“让 JavaScript 退休!”

近日,美国程序员、企业家、数据交换格式 JSON 之父,同时也是众多 JavaScript 语言开发工具的创造者 Douglas Crockford 在接受软件开发商 Evrone 采访时,发表的一个观点引发轩然大波。

Douglas Crockford,图源:https://www.crockford.com/about.html

其表示,「我们今天对 JavaScript 能做最好的事就就是让它退役。二十多年前,我是为数不多的 JavaScript 倡导者之一。它将嵌套函数和动态对象拼凑在一起的做法非常出色。随后,我花了十年时间试图纠正它的缺陷。我在 ES5 上取得了小小的成功。但从那时起,人们一直对进一步扩展语言而不是让它变得更好有着强烈的兴趣。」

因此,在他看来,如今的 JavaScript 与其他“恐龙”语言一样,已经成为进步的障碍。大家应该专注于下一种语言如 E 语言,而并非要抱着 JavaScript 不放手。

拥有 1750 万开发者的 JavaScript

不过,据开发者调查分析公司 SlashData 数据显示,全球有近 1750 万的开发者在使用 JavaScript。JavaScript 当前不仅被世界上的绝大多数网站所使用,而且被世界主流浏览器如 Chrome、IE、Firefox、Safari、Opera 支持。

同时,据多项调查报告显示,JavaScript 已霸榜多年。其中,根据今年早些时候的 Stack Overflow 发布的《》报告显示,2022 年是 JavaScript 连续第十年成为最常用的编程语言。超过 65% 的开发人员使用 JavaScript,远远领先于排名第二占比 48% 的 Python(忽略 HTML、CSS 和 SQL,它们不是通用语言)。对于初学习编码的人员而言,他们最常用的语言是 HTML / CSS、JavaScript 和 Python,而专业开发者则是 JavaScript、HTML/CSS 和 SQL。

作为一门主流语言,想要让大家不用 JavaScript 来开发似乎非常难。

冲进一线语言的背后蕴藏 27 年的积累

回看 JavaScript 能有今天的成就,其成长历程也可以用「传奇」二字来形容。

如果在 1995 年诞生之初,有人说 JavaScript 会成为 20 年后世界上最流行的语言之一,有开发者 Matthew MacDonald 评价道,“你要么有通灵术,要么是个疯子。”

因为当初 JavaScript 的原型开发只花费了 10 天的时间。此前,CSDN 也在《》一文中,分享过 JavaScript 的成长历程:

在 1995 年,网络浏览器先驱网景(Netscape)公司意识到,他们需要为人们提供一个更简单的选择。那时候他们处境艰难,与微软的市场大战正在紧锣密鼓,即将与 Sun 微系统公司达成重大战略合作伙伴关系,时间紧迫。他们雇佣了布兰登·艾奇(Brendan Eich),要求他尽可能快地创造一种新的语言。他在 10 天内就完成了 JavaScript 的第一个版本,正好赶上了这个漂亮的浏览器——Netscape 2。

Netscape 2: JavaScript的首次登场不过,Brendan Eich 真正想做的是构建一个像 Scheme 这样的学术编程语言的浏览器托管版本(网页脚本语言),但网景公司的愿景与此不同。他们想要一种看上去与 Java 足够相似,即使它的行为和 Java 不一样的语言。两个类似的名字:Java 和 JavaScript,导致了多年的混乱。彼时,Brendan Eich 说道,“我是根据公司高层指令开发这门语言,让它看上去和 Java 足够相似,但又不要让它太大。它只是有那么点儿像这种愚蠢语言的弟弟,对吧? ”

如果说 JavaScript 之父 Brendan Eich 将这门语言取名为 JavaScript 是“碰瓷” Java,那么在此后的 26 年间,JavaScript 的成功发展,外媒 DevClass 将其归因主要有两重要素。

一是,Brendan Eich 的先见之明。JavaScript 设计得更加容易学习与上手,以及对许多语言中会出现错误的代码的容忍度,比如将字符串和数字进行比较并得到一个常识性的结果。虽然后来 Eich 本人将这个功能称之为“一个很大的遗憾,因为其打破了一个重要的数据属性”,但不影响 JavaScript 能够被用户接受。

二是,Google 决心让基于浏览器的应用程序与桌面应用程序竞争,并开发了 JavaScript 运行时 V8 引擎(2008 年)。同时,Google 还与 Mozilla 的 SpiderMonkey(世界上第一款 JavaScript 引擎)和苹果的 JavaScriptCore(Safari 浏览器的 JavaScript 引擎)一起为 JavaScript 开发了惊人的 JIT。这也极大地促进了 JavaScript 的广泛应用。

霸榜多年的 JavaScript 为何惨遭嫌弃?

就是这样一款较为实用且主流的编程语言,为何一步一步惨遭嫌弃?为此,Douglas Crockford 在采访中提到,随着能力的提高,JavaScript 变得越来越复杂,这与 Eich 的原始概念相差甚远。

这也如同今天的 jQuery 技术一样,“在开发 jQuery 时,文档对象模型是一团糟。有必要有一个层来纠正它的错误、局限性和 Bug,并提高可移植性。但从那时起,更好的标准被开发出来,浏览器制造商也终于被说服遵守这些标准,IE 浏览器也终于退役了。与此同时,jQuery 变得臃肿。”

简单来看,复杂性、功能不断膨胀,让不少开发者不得不弃用 JavaScript。“JavaScript 在短短几年内爆发式发展,是的,生态系统复杂得可怕。即使对全职 JS 开发者而言,这也是一种困扰,JavaScript 已经变得非常疯狂,我们都无法跟上它的脚步”,一位开发者在 HN 评论区说道。

也有人表示,“试图让一个普通的新开发者在现代 JS 环境中跟上开发速度是非常困难的。JavaScript 里面覆盖的东西太多了,就像一个大泥球。不过,作为一个大泥球,却又真的很难被取代掉。”

JavaScript 真的能被取而代之吗?

Douglas Crockford 在文章伊始提到取代 JavaScript 的 E(http://erights.org/),是他与 Mark Miller 共同开发而成,为安全计算而设计。这并非是一门新的编程语言,而是早于 1997 年就被开发出来,后来,Mark Miller 对 E 进行了重新设计,消除了 Java 许多不良的部分,主要目标的支持安全的分布式系统的开发。

除了 E 之外,不少网友也提出了几种可能在一定程度上替代 JavaScript 的语言或技术:

TypeScript。TypeScript 是由微软的 Anders Hejlsberg 发明的,它是 JavaScript 的严格语法超集,提供了可选的静态类型检查,可用于开发大型应用。“作为一名 Typescript 开发人员,我早就放弃了对 JavaScript 的使用......除非必须,否则我不会碰它(在这种情况下,我可能会转换它)”,一名开发者分享道。

WebAssembly。作为一种二进制格式,可以被包括 C、C++、C# 和 Rust 在内的语言作为目标,它的出现是另一个可能破坏 JavaScript 主导地位的创新。

“我希望用 Ruby 来取代 JavaScript,将其嵌入到浏览器中”;

Dart 可能是目前“替换” JavaScript 的最佳竞争者。Dart 的类型和空安全,内置对 JIT 和 AOT 编译的支持,出色的开发工具以及快速增长的生态系统,使其成为了一种可能性。

不过,虽然想让 JavaScript 早点退休,Douglas Crockford 指出,还是有些不太现实,“目前主要有两个困难。首先,我们还没有下一种语言,这种语言是一种基于最小能力的参与者语言,专门为安全的分布式编程而设计,不应再考虑其他任何事情。其次,我们需要所有的浏览器制造商都采用它,同时用精心设计的界面取代 DOM。祝你好运。”

参考链接:

https://evrone.com/douglas-crockford-interview

https://devclass.com/2022/08/04/retire_javascript_says-json-creator-douglas-crockford/

https://news.ycombinator.com/item?id=32367589

","force_purephv":"0","gnid":"9ff26045d074df949","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752.gif","width":"640"},{"desc":"","height":"724","title":"","url":"https://p0.ssl.img.360kuai.com/t01ad0a80ebf0385397.jpg","width":"1024"},{"desc":"","height":"640","title":"","url":"https://p0.ssl.img.360kuai.com/t01a466bd399965344f.jpg","width":"640"},{"desc":"","height":"795","title":"","url":"https://p0.ssl.img.360kuai.com/t0165cce707cdd090d9.jpg","width":"1080"},{"desc":"","height":"674","title":"","url":"https://p0.ssl.img.360kuai.com/t01cb30d2120bedbf93.jpg","width":"1080"},{"desc":"","height":"864","title":"","url":"https://p0.ssl.img.360kuai.com/t01cc7812b761de815b.jpg","width":"1080"},{"desc":"","height":"140","title":"","url":"https://p0.ssl.img.360kuai.com/t01a5699c9d7e252c33.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,sexf,sex4,sexc,disu_label,fts0,sts0","powerby":"hbase","pub_time":1660030148000,"pure":"","rawurl":"http://zm.news.so.com/f417a480e013109a1cb7d4339ce52a3d","redirect":0,"rptid":"4363f5894168596e","s":"t","src":"CSDN","tag":[{"clk":"ktechnology_1:java","k":"java","u":""}],"title":"JSON 之父:“让 JavaScript 退休,是对它最好的事情!”

鬱路裘2653json数据格式修改 -
阙牧孔18752464806 ______ 首先这是[{"time":"1","temperature":30},{"time":"2","temperature":34}],你的目的是要解析成数组套数组,那就需要先解析json成一个一个的实体或者map然后分别得到1,30 和 2,34然后重组数据

鬱路裘2653如何获取html文件内容中json格式的内容 -
阙牧孔18752464806 ______ 假如你的json是这样的格式:var json = {'key_1':123, 'key_2':234, 'key_3':567};<br>那么你可以用循环的方式拿到:<br>for(var i in json){<br>alert("key="+i)<br>}<br><br>如果是用java处理json的话,那么先转换成JSONObject对象:<br>...

鬱路裘2653前端返回的json数据怎么处理 -
阙牧孔18752464806 ______ 你可以写一个接口,所有的service来继承这个接口, public interface IService { void text()throws Exception;}

鬱路裘2653JSON的数据处理问题 -
阙牧孔18752464806 ______ 找个 json处理包, 转成对象或者逐行解析.

鬱路裘2653如何在Hadoop的MapReduce程序中处理JSON文件 -
阙牧孔18752464806 ______ 如果你在map中读取json文件,那么你可以在map阶段对json进行解析,这个有很多方式,很多开源jar包都支持的,解析后再进行其他的计算

鬱路裘2653js获取json格式的字符串怎么处理啊 -
阙牧孔18752464806 ______ var obj=eval(str); 或用json2.js来解析 var obj=Json.parse(str)

鬱路裘2653js获取json格式的字符串怎么处理啊
阙牧孔18752464806 ______ JS 操作 JSON对象由于json是以文本,即字符串的形式传递的,所以我们拿到一个JSON串时要将其转换为JSON对象.js 自带转换方式 evalvar obj='{ "name" : "jinbao" , "url" : "jinbaoshare.com"}';var jsonobj= eval('(' + obj + ')');//读取...

鬱路裘2653如何处理JSON中的特殊字符 -
阙牧孔18752464806 ______ 您好,我来为您解答: 可以考虑在json之前先把数据进行编码一下,比如eacape或base64.这样就不用考虑特殊字符了. 服务端:含有中文非UTF8字符串->编码(escape或者base64)->json_encode -> 输出到客户端 客户端:json数据捕获 -> 解码(unescape或者unbase64) 希望我的回答对你有帮助.

鬱路裘2653java 怎么获取json格式数据 -
阙牧孔18752464806 ______ 接收到的json数据,是String类型的.可以用JSONObject等JSON处理类,来解析这个String

鬱路裘2653如何处理json中的非法utf8字符 -
阙牧孔18752464806 ______ 在BB10 Cascades开发环境中可以轻松地通过JsonDataAccess类读写json文件,将json文件中的数据转换成内存对象. 不过对于中国开发者来讲有个苦恼,就是通过样例读取json文件时如果json文件中有中文字符,所有中文字符在BB10 ...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024