JSON解析新办法:JSEL

本文对比了三种JSON解析器:官方提供的org.json、StringTree及JSEL。StringTree以简洁高效著称,但不支持注释;JSEL除了标准JSON外还能处理注释和简单表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON解析和系列化功能,JSON官方网站是提供了官方的Java实现的(org.json)。

但是,官方的实现并不理想。
不仅接口复杂的要命。而且效率也不理想,基本可以判定是一个不合格产品。

另外一个我比较喜欢的解析器,叫做StringTree。
这个解析器最大的特点就是简单,JSONReader负责解析,JSONWriter负责序列化,成员方法也简单明了。
他的输出格式除原始类型外,返回的Map,和List,充分利用了Java 集合框架。比起官方实现来,干净了很多。

StringTree不仅简单易用,而且性能也非常不错。
根据我的测试结果,StringTree最好。大概是JSEL的两倍。
而官方版本最差,大概只有是JSEL一半。等比数列了,[url=http://code.google.com/p/lite/wiki/JSEL]JSEL[/url]居中。

不过StringTree有一个bug,如果代码里面有注释,经常出现死循环。


再说[url=http://code.google.com/p/lite/wiki/JSEL]JSEL[/url]:
与专门的JSON解析相比,JSEL不仅可以解析标准的JSON数据,他还可以处理(忽略)JSON中插入的注释。甚至能处理一些简单的表达式计算,接口简单,性能也还不错。
如:

{
"time":24*60*60*1000*365*(2008-1981),
"data":[1,2,3,4,5],
key:123
}


关于JSEL的更多的信息可参看如下连接:
详细介绍:[url]http://code.google.com/p/lite/wiki/JSEL[/url]
详细介绍:[url]http://code.google.com/p/lite/downloads/list[/url]
ERROR Failed to compile with 34 errors 05:11:31 error in ./src/views/register.vue?vue&type=style&index=0&id=33c1edcf&prod&lang=scss&scoped=true SassError: expected selector. ╷ 195 │ & /deep/ .el-form-item__label { │ ^ ╵ D:\zuoye\yimiao\client\src\views\register.vue 195:3 root stylesheet @ ./src/views/register.vue?vue&type=style&index=0&id=33c1edcf&prod&lang=scss&scoped=true 1:0-534 1:0-534 @ ./src/views/register.vue @ ./src/router/router-static.js @ ./src/main.js @ multi ./src/main.js error in ./src/views/modules/config/list.vue?vue&type=style&index=0&id=7754bcba&prod&lang=scss&scoped=true SassError: expected selector. ╷ 13 │ & /deep/ el-pagination__sizes{ │ ^ ╵ D:\zuoye\yimiao\client\src\views\modules\config\list.vue 13:7 root stylesheet @ ./src/views/modules/config/list.vue?vue&type=style&index=0&id=7754bcba&prod&lang=scss&scoped=true 1:0-572 1:0-572 @ ./src/views/modules/config/list.vue @ ./src/router/router-static.js @ ./src/main.js @ multi ./src/main.js error in ./src/views/modules/dictionaryForumState/list.vue?vue&type=style&index=0&id=7903419a&prod&lang=scss&scoped=true SassError: expected selector. ╷ 13 │ & /deep/ el-pagination__sizes{ │ ^ ╵ D:\zuoye\yimiao\client\src\views\modules\dictionaryForumState\list.vue 13:7 root stylesheet @ ./src/views/modules/dictionaryForumState/list.vue?vue&type=style&index=0&id=7903419a&prod&lang=scss&scoped=true 1:0-572 1:0-572 @ ./src/views/modules/dictionaryForumState/list.vue @ ./src/router/router-static.js @ ./src/main.js @ multi ./src/main.js error in ./src/views/modules/dictionaryNews/list.vue?vue&type=style&index=0&id=7ba92595&prod&lang=scss&scoped=true SassError: expected selector. ╷ 13 │ & /deep/ el-pagination__sizes{ │ ^ ╵ D:\zuoye\yimiao\client\src\views\modules\dictionaryNews\list.vue 13:7 root stylesheet @ ./src/views/modules/dictionaryNews/list.vue?vue&type=style&index=0&id=7ba92
最新发布
03-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值