递归火山软件开发平台

标题: 火山pc的yyjson的Bug [打印本页]

作者: 路亦洲    时间: 2023-1-30 22:44
标题: 火山pc的yyjson的Bug
本帖最后由 路亦洲 于 2023-1-30 22:56 编辑

请看下面图文:
各位大哥,请看这个bug用户组_Json   YYJSON数组类
所有用户  YYJSON对象类
用户信息    YYJSON对象类

文本_取中间_批量 (页面内容, "id : \"", "\"", openid组, , , , , , , )
文本_取中间_批量 (页面内容, "create_time : \"", "\"", create_time组, , , , , , , )
文本_取中间_批量 (页面内容, "nick_name : \"", "\"", nick_name组, , , , , , , )
(我确定这里取出的数据都是准确的)
列表数 = openid组.取成员数 ()
计次循环 (列表数)
  用户信息.清空 ()
  用户信息.加入文本成员 ("fakeID", openid组.取成员 (取循环索引 ()))
  用户信息.加入文本成员 ("nickname", nick_name组.取成员 (取循环索引 ()))
  用户组_Json.加入成员 (用户信息)
我这样写,本已经将对象传递到数组了,这时数组是不是每循环一次就增加一个成员,每次的数据都不一样,但是最却是只有“用户信息”的在循环的最后 一次的数据传给了数据,而且数据里的数据都是重复的同一组数据。结果如下:
{
    "Users": [
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        },
        {
            "fakeID": "oM0vZsuVkc8Vh82Wbe_kYac69cDk",
            "nickname": "庄稼"
        }
    ]
}

但是,如果我按下面代码写:
计次循环 (列表数)
  用户信息.加入文本成员 ("fakeID", openid组.取成员 (取循环索引 ()))
  用户信息.加入文本成员 ("nickname", nick_name组.取成员 (取循环索引 ()))
  用户组_Json.加入成员 (用户信息)

  用户信息.清空 ()
我把“用户信息”的数据在循环尾清空,这时我已经把数据传递给了数组,最后结果是什么数据都没有,只剩下好些对“{}”!!这都什么设计?循环一次内存不就清零了吗?“用户信息”数据传递给了数组,我没操作数组,只对“用户信息”进行操作,怎么一次循环结束后还对别的数组产生影响了呢?还有更奇怪的是,如果不在循环头清除“用户信息”的数据,最后的有数组成员数的平方组都一样的数据。比如:openid组数组有10个成员,经过循环处理,加到yyjson后,“所有用户”的数组的100个成员,到底是模块的问题,还是火山平台的问题?

作者: 创世魂    时间: 2023-1-31 08:37
这不是bug,变量使用后就被释放了。yyjson为了效率牺牲了很多。。

合成json推荐直接用 json对象类 更方便
作者: Xelloss0618    时间: 2023-1-31 09:56
注意看命令的注释,这个yyjson的对象只能加入一次,多次被加入将导致成员值丢失或混乱
作者: shuimiao    时间: 2023-1-31 11:07


(, 下载次数: 31)

(, 下载次数: 2)

作者: 路亦洲    时间: 2023-1-31 14:13
shuimiao 发表于 2023-1-31 11:07

谢谢!模块能在网上找到吗?
作者: 路亦洲    时间: 2023-1-31 14:22
创世魂 发表于 2023-1-31 08:37
这不是bug,变量使用后就被释放了。yyjson为了效率牺牲了很多。。

合成json推荐直接用 json对象类 更方便 ...

json类对于多层级的json数据好不太好用
作者: shuimiao    时间: 2023-1-31 14:53
路亦洲 发表于 2023-1-31 14:13
谢谢!模块能在网上找到吗?

http://bbs.voldp.com/forum.php?m ... %B0%B4%E6%B7%BCjson
作者: shuimiao    时间: 2023-1-31 14:54
路亦洲 发表于 2023-1-31 14:13
谢谢!模块能在网上找到吗?

论坛有http://bbs.voldp.com/forum.php?mod=viewthread&tid=12536
作者: 路亦洲    时间: 2023-1-31 15:15
shuimiao 发表于 2023-1-31 14:54
论坛有http://bbs.voldp.com/forum.php?mod=viewthread&tid=12536

谢谢!找到了!终于和易语言一样的调用了
作者: 路亦洲    时间: 2023-1-31 23:33
shuimiao 发表于 2023-1-31 11:07


大哥,请问是什么问题?
作者: 创世魂    时间: 2023-2-1 10:19
本帖最后由 创世魂 于 2023-2-1 10:21 编辑
路亦洲 发表于 2023-1-31 14:22
json类对于多层级的json数据好不太好用

都一样的,也支持路径写入数据。。可以直接塞路径生成。你看下注释就知道了。。写代码不熟的多看注释。用起来也是非常方便。。

(, 下载次数: 28)


作者: 创世魂    时间: 2023-2-1 10:31
json操作,非常简单……也是两三下就搞定了。

(, 下载次数: 29)

作者: 路亦洲    时间: 2023-2-1 12:22
创世魂 发表于 2023-2-1 10:31
json操作,非常简单……也是两三下就搞定了。

谢谢!看明白 了,这才和精易模块的json类一样:噜阿噜
作者: 路亦洲    时间: 2023-2-1 12:23
路亦洲 发表于 2023-2-1 12:22
谢谢!看明白 了,这才和精易模块的json类一样:噜阿噜

就是路径的顶层要加两斜杠“//”?
作者: 创世魂    时间: 2023-2-1 12:34
本帖最后由 创世魂 于 2023-2-1 12:36 编辑
路亦洲 发表于 2023-2-1 12:23
就是路径的顶层要加两斜杠“//”?

是的。路径每个节点都要用小数点,然后就是加个\\
http://bbs.voldp.com/forum.php?mod=viewthread&tid=15100  这里有我开源的路径解析源码,放进去可以直接拿到火山所需要的路径





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4