火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 40694|回复: 220
打印 上一主题 下一主题

[视窗] 【开源】水淼JSON类 - 使用火山编写的高性能读写JSON

  [复制链接]

367

主题

2239

帖子

7271

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7271
跳转到指定楼层
楼主
发表于 2021-6-11 18:27:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shuimiao 于 2021-6-12 00:36 编辑
本模块仅供交流学习JSON格式解析,建议规范使用JOSN解析,遵循JSON基本规范。
  1. 2021年6月11日 22:23:31 补上了取字节集字节()和置字节集字节()方法,并修改这2个方法不用去改库就能运行
  2. 2021年6月11日 23:32:51 修复了置字节集字节()方法整数型溢出的问题,并修改相关方法前缀为_
  3. 2021年6月12日 00:30:42 添加子节点()方法补上参考返回添加后的子节点。该方法支持重复键名,不符合json规范,请慎用,建议使用 子节点() 方法就不会发生重名。
复制代码

游客,如果您要查看本帖隐藏内容请回复


水淼JSON类除了支持JSON基本解析规则之外,还独家增强:

1、键值对的单双引号混合识别
2、键值对的无引号识别
3、空白键名识别(允许对象内容像数组内容那样只给出键值而没有键名)
4、重复键名识别(按序号定义,如 键名->5 代表第6个重名的键名)
5、并列多组不同来源的JSON数据识别
6、通过解析文件流的方式对无限大文件(如10G)的指定路径的读取。
7、读写编码为Unicode,故支持万国语言。
8、全方位优化解析和读写数据的速度,远超市面JSON类库。


水淼JSON类相对火山自带的JSON数据访问支持类库,解析速度差不多,但是读数据的速度是火山自带的不知道多少倍了(实测10MB文件,相同路径访问,水淼只要0毫秒,火山自带的要几十秒),而且水淼的读写数据的语法简单,直接给出路径一步到位取出数据,也可以逐级取出数据()。









评分

参与人数 6金钱 +13 收起 理由
xuezhq + 5 实测发现,非常NB,请楼主继续维护,可替代.
上等兵 + 1 很给力!
wtuauwfn + 1 很给力!
米粒 + 2 很给力!
伟业 + 1 赞一个!
呵呵仙8 + 3 很给力!

查看全部评分

回复

使用道具 举报

367

主题

2239

帖子

7271

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7271
来自 212#
 楼主| 发表于 2023-1-10 09:46:24 | 只看该作者
水淼JSON类,最新版本在这里 http://bbs.voldp.com/forum.php?m ... p;extra=&page=1

本帖是最老的版本。
回复

使用道具 举报

3

主题

102

帖子

1062

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1062
沙发
发表于 2021-6-11 18:46:04 | 只看该作者
牛逼:噜阿噜:噜阿噜
回复

使用道具 举报

9

主题

372

帖子

3003

积分

贵宾

火山小白

Rank: 9Rank: 9Rank: 9

积分
3003
板凳
发表于 2021-6-11 19:00:21 | 只看该作者
学习……
WX搜索:大强小屋【ID:daqiangstudio】
向火山进发!
回复

使用道具 举报

4

主题

92

帖子

980

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
980
地板
发表于 2021-6-11 19:26:06 | 只看该作者
:噜阿噜下来试试
回复

使用道具 举报

1

主题

206

帖子

2216

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2216
5#
发表于 2021-6-11 19:28:35 | 只看该作者
强烈顶起
回复

使用道具 举报

2

主题

26

帖子

493

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
493
6#
发表于 2021-6-11 19:40:58 | 只看该作者
RE: 【开源】水淼JSON类 - 使用火山编写的高性能读写JSON [修改]
回复

使用道具 举报

70

主题

489

帖子

4367

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4367
7#
发表于 2021-6-11 19:53:14 | 只看该作者
强烈顶起!!!
回复

使用道具 举报

78

主题

285

帖子

2637

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2637
8#
发表于 2021-6-11 19:57:23 | 只看该作者
这个必须支持
回复

使用道具 举报

50

主题

473

帖子

1869

积分

金牌会员

Rank: 6Rank: 6

积分
1869
9#
发表于 2021-6-11 20:06:19 | 只看该作者
谢谢!学习!!
回复

使用道具 举报

3

主题

126

帖子

2048

积分

金牌会员

Rank: 6Rank: 6

积分
2048
10#
发表于 2021-6-11 20:10:42 | 只看该作者
楼主NB,但说一下个人想法 仅供探讨。

我觉得最好还是严格遵守 RFC 7159 所定义的 JSON 规范。对于单双引号混合/重复键名识别这些功能,尽量不要做出来。如果有一天楼主的库被火伴广泛使用,就或多或少对整个(至少火山圈子里)的 json 规范造成冲击。一旦规范被打破,则失去了规范的意义。

json不支持注释语法,其中一个重要原因就是 xml 的注释被滥用从而衍生出私有语法,使得 xml 通用性大大降低。
如果自己项目需要,可以私下实现。一旦公开发出来,也许一些开发者无意中明明不需要这些增强的也顺手使用,结果一发不可收拾。

评分

参与人数 2金钱 +2 收起 理由
gdycphl + 1 赞一个! 规范最好
nuan1989 + 1 可以搞一个配置, 默认关闭. 需要的自己开, .

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-4-24 05:22 , Processed in 0.096888 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表