精易论坛

标题: json命令相关问题 [打印本页]

作者: 曦月    时间: 2025-4-16 14:48
标题: json命令相关问题
d相关的为 RapidJSON 中的
zy相关的为 zyjson 中的

其他的命令,好像在平替后可以取出相同值,比如

d.取属性 (“params”, ).取成员数 ()
zy.取属性 (, “params”).取成员数 ()


d.添加属性_长整数 (“id”, 11223344)
zy.置长整数 (“id”, 11223344)


d.取属性 (“params”, ).是否有成员 (“response”)
zy.取属性 (, “params”).是否存在 (“response)


d.创建值自路径 (“/params”).添加属性_长整数 (“backend”, 123456789, 分配器值)
zy.置长整数 (“params.backend”, 123456789)


等等,都可以平替取出相同值。

然后,这里出问题了,

d.取属性 (“params”, ).取成员 (1).取文本 ()   可以取出数据,这里取出的值也是没规律,应该是我不懂导致的


zy.取属性 (,“params”).取成员 (,1).取文本 ()  取出空白,换了好几个索引,都是空白



具体的在demo里面,在线等大佬们的答复

引用模块
https://wwza.lanzouo.com/i55Z52tqotlc

源码例子
demo.e (287.92 KB, 下载次数: 4)

作者: 菜鸟路过    时间: 2025-4-16 14:48
调试输出 (zy.取文本 (“params.context.uniqueId”)) 这样就能取出来,为啥你要用成员数的方式去取,你这个json又不包含list成员

补充内容 (2025-4-16 16:33):
调试输出 (zy.取属性 (, “params”).取属性 (, “context”).取文本 (“uniqueId”)) 这样也行
作者: 曦月    时间: 2025-4-16 16:56
菜鸟路过 发表于 2025-4-16 16:25
调试输出 (zy.取文本 (“params.context.uniqueId”)) 这样就能取出来,为啥你要用成员数的方式去取,你这 ...

zy.取文本 (“params.context.uniqueId”) 单纯取固定文本这个我知道,但是防止的是如果变动了,就取不了,所以只能通过属性去判断,这才用的 属性 成员 文本的方式,看到rdjson可以取出,然后zy取不了,所以来问问大佬们,就是如果里面的位置变动了,用 zy.取属性 (, “params”).取属性 (, “context”).取文本 (“uniqueId”) 这个可以取出来吗?

补充内容 (2025-4-16 16:56):
我先去测试一下
作者: 菜鸟路过    时间: 2025-4-16 17:01
曦月 发表于 2025-4-16 16:56
zy.取文本 (“params.context.uniqueId”) 单纯取固定文本这个我知道,但是防止的是如果变动了,就取不了 ...

你完全理解错了,json本来就是无序的
作者: ctry78985    时间: 2025-4-16 17:21
.版本 2
.支持库 spec

调试输出 (“-----------------------”)
调试输出 (“属性名”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 0).取属性名 (), “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 0).取文本 ())
调试输出 (“属性名”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 1).取属性名 (), “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 1).取文本 ())
调试输出 (“属性名”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 2).取属性名 (), “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 2).取文本 ())
调试输出 (“属性名”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 3).取属性名 (), “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 3).取文本 ())
调试输出 (“属性名”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 4).取属性名 (), “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 4).取文本 ())

调试输出 ()
调试输出 (“-----------------------”)
调试输出 (zy.取属性 (“params”, “context”).取成员 (, 0).取属性名 (), zy.取属性 (“params”, “context”).取成员 (, 0).取文本 ())
调试输出 (zy.取属性 (“params”, “context”).取成员 (, 1).取属性名 (), zy.取属性 (“params”, “context”).取成员 (, 1).取文本 ())
调试输出 (zy.取属性 (“params”, “context”).取成员 (, 2).取属性名 (), zy.取属性 (“params”, “context”).取成员 (, 2).取文本 ())
调试输出 (zy.取属性 (“params”, “context”).取成员 (, 3).取属性名 (), zy.取属性 (“params”, “context”).取成员 (, 3).取文本 ())
调试输出 (zy.取属性 (“params”, “context”).取成员 (, 4).取属性名 (), zy.取属性 (“params”, “context”).取成员 (, 4).取文本 ())

作者: 曦月    时间: 2025-4-16 17:40
ctry78985 发表于 2025-4-16 17:21
.版本 2
.支持库 spec

如果 只知道关键词 “params”,然后不清楚其他的数据,比如不知道“context”或者其他信息,能不能取?
作者: 曦月    时间: 2025-4-16 17:42
菜鸟路过 发表于 2025-4-16 17:01
你完全理解错了,json本来就是无序的

主要是改模块,将rdjson改成zyjson命令,所以有些命令,只有一个关键属性,给出的数据,该命令过程中,人为添加数据构造的,具体真实数据不清楚,所以只能根据原有的关键名取内容,不然怕修改后,程序出问题
作者: ctry78985    时间: 2025-4-16 17:43
调试输出 ( “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 0).取文本 ())


补充内容 (2025-4-16 17:49):
调试输出 (“属性名”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 0).取属性名 (), “属性值”, zy.取属性 (, “params”).取成员 (, 0).取成员 (, 0).取文本 ())
作者: 菜鸟路过    时间: 2025-4-16 17:44
曦月 发表于 2025-4-16 17:40
如果 只知道关键词 “params”,然后不清楚其他的数据,比如不知道“context”或者其他信息,能不能取? ...

zy.取所有属性名 ()
作者: 曦月    时间: 2025-4-16 19:26
菜鸟路过 发表于 2025-4-16 17:44
zy.取所有属性名 ()

行吧  先这样放着,改完其他的再换这几个命令




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4