水淼Json怎么处理这种无键名的数据
怎么遍历循环取出JSON内的Ci开头的值解析到水淼的json工具上面,看看路径如何显示,直接复制路径到火山读写 水淼没用过,但是yyjson是下面这么写。要自己写递归循环。
另外这个没有键名的叫 JSON数组有键名的叫JOSN对象
<火山程序 类型 = "通常" 版本 = 1 />
类 我的主窗口 <公开 基础类 = 窗口 注释 = "样例主窗口" @视窗.布局 = "client_size = \"730, 554\"">
{
变量 编辑框1 <类型 = 编辑框 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 101\r\npos = \"45, 30, 616, 480\"" 是否允许多行 = 真
滚动条 = 纵向滚动条>
变量 JSON <类型 = YYJSON只读对象类>
方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
JSON.创建自文件 (取特定目录 (特定目录类型.系统桌面) + "json.txt")
数组递归解析 (JSON.到数组 ())
返回 (0)
}
方法 数组递归解析
参数 参_数组 <类型 = YYJSON只读数组类>
{
变量 计次 <类型 = 整数>
参_数组.枚举循环 ()
{
变量 类型 <类型 = YYJSON值类型>
类型 = 参_数组.取枚举值 ().取类型 ()
变量 局_嵌套对象 <类型 = YYJSON只读对象类>
局_嵌套对象 = 参_数组.取成员 (计次)
如果 (类型 == YYJSON值类型.数组值)
{
数组递归解析 (局_嵌套对象.到数组 ())
}
否则
{
如果 (是否以文本开头 (局_嵌套对象.到文本 (), "Ci"))
{
编辑框1.加入文本行 (局_嵌套对象.到文本 ())
}
}
计次 = 计次 + 1
}
}
}
先用解析工具查看路径情况,再复制路径到火山读
<火山程序 类型 = "通常" 版本 = 1 />
方法 测试读Json
{
变量 JSON <类型 = 水淼JSON类>
变量 数量 <类型 = 整数>
JSON.解析 (取剪辑板文本 ())
// 目标数据的第一个地址
数量 = JSON.读路径子数 ("")
调试输出 ("数量", 数量)
计次循环 (数量)
{
调试输出 (JSON.读路径值 ("[" + 到文本 (取循环索引 ()) + "]"))
}
}
本帖最后由 shuimiao 于 2023-10-3 10:36 编辑
创世魂 发表于 2023-10-3 10:01
水淼没用过,但是yyjson是下面这么写。要自己写递归循环。
另外这个没有键名的叫 JSON数组有键名的叫JOS ...
yy要递归还要判断开头字符这么麻烦的吗?你看看我的,直接到位。。已回复例子 shuimiao 发表于 2023-10-3 10:35
yy要递归还要判断开头字符这么麻烦的吗?你看看我的,直接到位。。已回复例子 ...
除了速度比YY慢一些,易用性,兼容性,扩展性完胜火山圈子里任何JSON,一直在用,点个赞 fengyishen 发表于 2023-10-3 15:56
除了速度比YY慢一些,易用性,兼容性,扩展性完胜火山圈子里任何JSON,一直在用,点个赞 ...
因为要解析为树结构可能会略慢一点,但是不是巨大数据不会感觉到慢的。至于读路径,如果路径层级比较深入而且固定路径需要读取下面的数组,可以设置前缀路径来直达访问。
如 前面的例子,第一个目标路径:
JSON.读路径子数 ("",真)//真就是启用前缀路径
启用路径前缀前是这样访问:
JSON.读路径值 ("[" + 到文本 (取循环索引 ()) + "]")
启用路径前缀后是这样访问:
JSON.读路径值 ("[" + 到文本 (取循环索引 ()) + "]")
路径前缀就是免去前面固定路径的每次寻找过程,直达该固定路径的指针处开始读取后面的路径,在遇到层级多数据大的情况下,速度飙升。这也是树结构的优点。读取时间唯一耗在路径的寻找上,前缀路径就能减少不必要的时间,还能简化后续的路径访问。
页:
[1]