递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库

为火山添砖加瓦 - JSON库

查看数: 21037 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-5-15 23:40

正文摘要:

本帖最后由 Ewangl 于 2021-5-18 17:33 编辑 说明: 库未系统性测试。测试留给使用者,作为懒人的我,不喜欢无聊的测试过程。非常抱歉,并未给函数备注。其实看看就懂。 调用方式: 注意!这是修改后的!多了两个 ...

回复

2oon 发表于 2021-5-18 20:33:31
不懂,顶顶没毛病
Ewangl 发表于 2021-5-18 13:54:54
shuimiao 发表于 2021-5-18 02:07
我研究了下,就是像你说的内部有一个固定的数据结构变量(估计是本程序跨类全局的),所以无论怎么返回jso ...

你这样一说,我还没注意,的确如此。我的理解是类中嵌入变量在初始化栈中,这火山打破了我认知。你加我QQ吧,我改造一下。452327180
shuimiao 发表于 2021-5-18 02:07:11
本帖最后由 shuimiao 于 2021-5-18 02:11 编辑
Ewangl 发表于 2021-5-18 01:03
返回的是本类引用(源指针),但这不是重点(关键)!在此类中还存在一个结构数据变量,含主指针及游动指 ...

我研究了下,就是像你说的内部有一个固定的数据结构变量(估计是本程序跨类全局的),所以无论怎么返回json类,都是指向这个数据结构变量,而节点()方法只是用来在类内部定位要读写的节点名称,而不是返回具体节点结构。而火山方法的返回确实只是拷贝,不存在引用,因为这个类内部数据是跨类全局的,所以返回的类不管是拷贝还是引用都不会影响内部读写。

不过这样就无法另外建立一个json类变量来单独操作了,因为无论多少个json类变量,操作领域都指向了一个全局的数据结构变量。这样局限性就大了,而且多线程也容易混乱。

我在用火山开发一个高性能JSON读写库,需要返回值是参考引用而不是拷贝,也需要变量支持参考属性,可吴总就是没加入。虽然没有返回参考,但还是能变通的,比如遍历内部写值,或者写指针处数据,只是比较麻烦而已
Ewangl 发表于 2021-5-18 01:03:25
shuimiao 发表于 2021-5-17 23:24
请教下,json.节点() 返回的json类,好像火山默认是拷贝一份新的json类,而不是参考原先的json类吧

如果返 ...

返回的是本类引用(源指针),但这不是重点(关键)!在此类中还存在一个结构数据变量,含主指针及游动指针!主要是需要操作它。当然,有个缺点,操作同一个类多线程下不安全!。
shuimiao 发表于 2021-5-17 23:24:57
请教下,json.节点() 返回的json类,好像火山默认是拷贝一份新的json类,而不是参考原先的json类吧

如果返回的是拷贝,那对拷贝的修改,不就无法影响原先json类吗?如果楼主返回的是参考,那请教是如何实现的,我看了代码,最后就一个 返回(本对象)。假如要返回json类的一个嵌套子json类该如何实现参考返回?
a870840081 发表于 2021-5-17 21:41:21
a870840081 发表于 2021-5-17 01:21
鸡毛系统自带的 会崩溃 我试试这个

以为库问题 我json文本毡包了 哎!菜逼打脸啊
amwji 发表于 2021-5-17 13:18:20
学习学习
a870840081 发表于 2021-5-17 01:21:33
htpmcj 发表于 2021-5-16 12:43
这个和系统自带的如何,有谁测试过?

鸡毛系统自带的 会崩溃 我试试这个
Xelloss0618 发表于 2021-5-16 16:36:49
htpmcj 发表于 2021-5-16 12:43
这个和系统自带的如何,有谁测试过?

看了下,都是jsoncpp,只不过是使用方法封装得不一样而已

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

GMT+8, 2025-6-19 17:44 , Processed in 0.098423 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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