火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[类库封装] 8月17日:水淼JSON类v1.5 - 高性能读写JSON,强大兼容解析能力

  [复制链接]

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
跳转到指定楼层
楼主
发表于 2022-1-15 14:51:23 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shuimiao 于 2022-8-17 20:24 编辑
距离上次开源已经过去半年了,这期间也升级和修复了一些内容,今天封装成库方便调用。地球人都知道,火山类库本身就是开源的,所以发布类库就是开源了,需要学习的可以安装类库后进去打开就能看到代码。更多介绍可以看以前的帖子 http://bbs.voldp.com/forum.php?m ... light=json%E7%B1%BB

强大兼容解析能力,就是如果网页中有json数据,都不用准确复制,整个网页代码一起传给JSON类都可以解析哦(当然事无绝对)。本人多个项目应用很OK。

高性能读写,效率非常高,高到什么程度,不知道怎么形容。

这里下载,类库安装包为vcip文件:
游客,如果您要查看本帖隐藏内容请回复
JSON解析绝佳搭配工具 https://www.shuimiao.net/JsonX/



1.3:
2022年6月19日 支持识别火山自带JSON的路径表达方式,如 //ar.wo.[3].hehe

1.5:
2022年7月1日 修改读路径子名称组()支持返回数组序号列表
2022年7月5日 新增前缀路径加速访问支持,主要是在读路径子数()和读路径子名称()中可选开启,在解析()时自动取消,也可以手动取消 前缀路径 = ""
前缀路径的作用就是加速深层同父路径的多次访问速度,当然只有在数据很多的情况下才有明显加速效果,但是访问便捷性是毋庸置疑的
比如 要连续访问
a.b.c.[0].d
a.b.c.[1].d
a.b.c.[2].d
读路径子数("a.b.c",真)
后面计次循环访问数组时,因为都是相同的父路径 a.b.c,并且开启了前缀路径,那每个数组的访问路径就变成了
读路径值("[0].d")
读路径值("[1].d")
读路径值("[2].d")
没有开启前缀路径时,就必须使用完整路径。开启后可以在解析()时自动取消,也可以手动取消 前缀路径 = ""

2022年8月1日 新增YYJSON路径模式支持(JSON类.斜杠路径模式 = 真)
2022年8月16日 修复解析文件流,当json路径不存在或编码选错时卡住的问题
......还有些更新已经忘了记录。











评分

参与人数 3金钱 +19 收起 理由
qiuzhi + 15 语法很灵活,牛逼
正版商业用户 + 3 大咪咪都点赞了,说明很牛啊^_^.
dasemimi + 1 火山有您更精彩

查看全部评分

回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
沙发
 楼主| 发表于 2022-1-16 10:16:23 来自手机 | 显示全部楼层
michardhl 发表于 2022-1-16 09:18
和yyjson比较如何?

没有比较过,各有特色吧,实际应用起来,这个不合适就找别的,多种选择嘛
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
板凳
 楼主| 发表于 2022-1-17 15:34:20 来自手机 | 显示全部楼层
奇亿Reno 发表于 2022-1-17 00:35
好东西,易语言的还在更新吗?

易语言的早弃坑了,远远不如火山版本的完善和高效率
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
地板
 楼主| 发表于 2022-2-9 09:24:35 来自手机 | 显示全部楼层
kamikaze 发表于 2022-2-9 01:57
没有读文本值?

读路径值()就是
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
5#
 楼主| 发表于 2022-4-20 20:51:01 来自手机 | 显示全部楼层
zj3751 发表于 2022-4-20 14:16
运行时校验失败("E:\RJ\vol_dev\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp\vol_mem_pool.cpp" ...

上传你的案例才能测试
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
6#
 楼主| 发表于 2022-8-17 00:37:14 | 显示全部楼层
1.3:
2022年6月19日 支持识别火山自带JSON的路径表达方式,如 //ar.wo.[3].hehe

1.5:
2022年7月1日 修改读路径子名称组()支持返回数组序号列表
2022年7月5日 新增前缀路径加速访问支持,主要是在读路径子数()和读路径子名称()中可选开启,在解析()时自动取消,也可以手动取消 前缀路径 = ""
前缀路径的作用就是加速深层同父路径的多次访问速度,当然只有在数据很多的情况下才有明显加速效果,但是访问便捷性是毋庸置疑的
比如 要连续访问
a.b.c.[0].d
a.b.c.[1].d
a.b.c.[2].d
读路径子数("a.b.c",真)
后面计次循环访问数组时,因为都是相同的父路径 a.b.c,并且开启了前缀路径,那每个数组的访问路径就变成了
读路径值("[0].d")
读路径值("[1].d")
读路径值("[2].d")
没有开启前缀路径时,就必须使用完整路径。开启后可以在解析()时自动取消,也可以手动取消 前缀路径 = ""

2022年8月1日 新增YYJSON路径模式支持(JSON类.斜杠路径模式 = 真)
2022年8月16日 修复解析文件流,当json路径不存在或编码选错时卡住的问题
......还有些更新已经忘了记录。
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
7#
 楼主| 发表于 2022-10-2 10:37:13 来自手机 | 显示全部楼层
君安光电科技 发表于 2022-10-2 00:34
看看JSON读写支不支持链式调用没~

链式调用是不是子节点(节点名称).子节点(节点名称).子节点(节点名称).值=xxxx

这样的话是支持的
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
8#
 楼主| 发表于 2023-6-17 10:26:15 | 显示全部楼层
zj3751 发表于 2023-6-17 02:05
我就问一句:怎么判断值类型

JSON.子节点("a.b.c").值类型
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
9#
 楼主| 发表于 2023-8-21 16:16:51 | 显示全部楼层
jiuzhu01 发表于 2023-8-21 08:57
多线程下无法正常使用

经过测试,是在启动方法里启动线程并返回0导致不稳定出现内存垃圾错误,这是线程与系统的协调机制问题,而不是线程所调用下的json类的bug问题,换成了火山自带json也是同样效果。因为启动方法返回0,线程还没结束,整个程序就退出了,就会提示内存垃圾。而启动方法返回1则正常,估计系统级等待线程完成并内存处理完毕才会退出程序,所以不会出错。如果是在正常的应用环境里,肯定都是等线程完成了程序才会退出,就不会发生内存垃圾这类调试错误。
回复

使用道具 举报

369

主题

2253

帖子

7321

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
7321
10#
 楼主| 发表于 2023-9-4 11:22:10 来自手机 | 显示全部楼层
你自己能改就可以啊,带空格是为了整齐。不过读值里面有个排版格式,紧凑排版没有空格
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 22:02 , Processed in 0.102458 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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