火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 23750|回复: 217

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

  [复制链接]

320

主题

1813

帖子

5701

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5701
发表于 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毫秒,火山自带的要几十秒),而且水淼的读写数据的语法简单,直接给出路径一步到位取出数据,也可以逐级取出数据()。

水淼JSON类.png

水淼·JSON解析助手增强版v1.0.0.0.png
调用例程.png




评分

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

查看全部评分

回复

使用道具 举报

320

主题

1813

帖子

5701

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5701
 楼主| 发表于 2023-1-10 09:46:24 | 显示全部楼层
水淼JSON类,最新版本在这里 http://bbs.voldp.com/forum.php?m ... p;extra=&page=1

本帖是最老的版本。
回复

使用道具 举报

3

主题

103

帖子

1025

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1025
发表于 2021-6-11 18:46:04 | 显示全部楼层
牛逼:噜阿噜:噜阿噜
回复

使用道具 举报

9

主题

373

帖子

2384

积分

贵宾

火山小白

Rank: 9Rank: 9Rank: 9

积分
2384
发表于 2021-6-11 19:00:21 | 显示全部楼层
学习……
WX搜索:大强小屋【ID:daqiangstudio】
向火山进发!
回复

使用道具 举报

2

主题

53

帖子

594

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
594
发表于 2021-6-11 19:26:06 | 显示全部楼层
:噜阿噜下来试试
回复

使用道具 举报

1

主题

191

帖子

1979

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1979
发表于 2021-6-11 19:28:35 | 显示全部楼层
强烈顶起
回复

使用道具 举报

2

主题

26

帖子

490

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
490
发表于 2021-6-11 19:40:58 | 显示全部楼层
RE: 【开源】水淼JSON类 - 使用火山编写的高性能读写JSON [修改]
回复

使用道具 举报

52

主题

400

帖子

3425

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3425
发表于 2021-6-11 19:53:14 | 显示全部楼层
强烈顶起!!!
回复

使用道具 举报

62

主题

216

帖子

1876

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1876
发表于 2021-6-11 19:57:23 | 显示全部楼层
这个必须支持
回复

使用道具 举报

29

主题

282

帖子

979

积分

高级会员

Rank: 4

积分
979
发表于 2021-6-11 20:06:19 | 显示全部楼层
谢谢!学习!!
回复

使用道具 举报

2

主题

115

帖子

1711

积分

金牌会员

Rank: 6Rank: 6

积分
1711
发表于 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, 2023-6-4 22:20 , Processed in 0.047658 second(s), 8 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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