开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 806|回复: 9
收起左侧

[易语言] 关于json取值得一个问题

[复制链接]
结帖率:85% (41/48)
发表于 2019-12-3 17:49:53 | 显示全部楼层 |阅读模式   河北省石家庄市
5精币
QQ截图20191203173553.png
如图,假设我知道vid的值28341,我需要找到他对应的neme(黑色),我不知道该如何做。(可以用json支持库,也可以用精易的类。)
结构都是固定的。我的设想是,能否通过28341,找到他是在哪个属性下的,这样我就可以在这个属性下取通用属性 name了。
说白了,就是如何通过 vid=28341 来反查出 vid=28341 是在 props.0.valuses.0 这个属性下的。反查到这个属性我就可以取这个属性下的name通用属性了。
精易模块的类中,我没有找到和查找相关的命名。
在支持库中,有一个“cha询”,查找一个json中的全部符合规则的数据.支持 * ? 通配符。参数<1>的名称为“cha询语句”,类型为“通用型(all)”。分隔符: / 支持 * ? 通配符。
我不知道如何用这个 cha询语句。

我现在能想到的只能是循环props.0.valuses下的所有属性,然后遍历看哪个属性的vid=28341,我觉得这样的方法很笨。请大家指点。(取中间文本的方法就不需要了,只用json的)




补充内容 (2019-12-3 18:04):
{"props":[{"values":[{"vid":"28341","name":"黑色","sortOrder":"0"},{"vid":"531224073","name":"蓝色基础款","sortOrder":"5"},{"vid":"93586002","name":"黑色加绒","sortOrder":"6"}]}]}


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (30/30)
发表于 2019-12-3 17:52:51 | 显示全部楼层   浙江省嘉兴市
发json文本出来...
回复

使用道具 举报

结帖率:85% (41/48)
 楼主| 发表于 2019-12-3 18:04:44 | 显示全部楼层   河北省石家庄市
67449123 发表于 2019-12-3 17:52
发json文本出来...

{"props":[{"values":[{"vid":"28341","name":"黑色","sortOrder":"0"},{"vid":"531224073","name":"蓝色基础款","sortOrder":"5"},{"vid":"93586002","name":"黑色加绒","sortOrder":"6"}]}]}
回复

使用道具 举报

结帖率:100% (30/30)
发表于 2019-12-3 18:17:18 | 显示全部楼层   浙江省嘉兴市
hktkzyz 发表于 2019-12-3 18:04
{"props":[{"values":[{"vid":"28341","name":"黑色","sortOrder":"0"},{"vid":"531224073","name":"蓝色 ...

json.e (18.24 KB, 下载次数: 14)
回复

使用道具 举报

结帖率:85% (41/48)
 楼主| 发表于 2019-12-3 18:55:31 | 显示全部楼层   河北省石家庄市
67449123 发表于 2019-12-3 18:17
用了两个节点互相查的方法....比每次都循环判断要好点..精易的json不会用..看懂的话自己转一下..
你 ...

感谢。
1、我都忘记了易语言这个“节点”数据类型。呵呵。他这个弥补键值对的方法,我总是忘记。
2、你的代码循环中第2个也写成 正节点 了,不过效果一样,相当于正节点有6个。都能起到查找的作用。只是不需要反节点了。
3、但你的方法也不好,并没有充分利用json,虽然数据不会太大量。
4、他这个ec写的蛮复杂的,我习惯用支持库那个,不过我发现他这个ec里其实是有find功能的,而且我看写的还不错的,还能自己定义查到第几层。只是这个模块有点不习惯。我再琢磨吧。
5、实在没有好的方法我就用取中间文本了,其实取中间文本是最快的。

点评

我也用的不多 这个ec find没试过 写法习惯就好了...我是觉得挺方便的..   浙江省嘉兴市  发表于 2019-12-3 19:45
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 15 天

发表于 2019-12-3 18:57:58 | 显示全部楼层   江苏省苏州市
我现在能想到的只能是循环props.0.valuses下的所有属性,然后遍历看哪个属性的vid=28341,我觉得这样的方法很笨。请大家指点。(取中间文本的方法就不需要了,只用json的)

遍历属性我觉得还不错呀,为啥不用呢
回复

使用道具 举报

结帖率:85% (41/48)
 楼主| 发表于 2019-12-3 19:14:16 | 显示全部楼层   河北省石家庄市
冯古屋 发表于 2019-12-3 18:57
遍历属性我觉得还不错呀,为啥不用呢

因为假如有100个属性,那就需要在100个里面,遍历100遍,当然可以找到后跳出循环。
但这样说实话,还不如用节点方便。
回复

使用道具 举报

结帖率:100% (3/3)
发表于 2019-12-3 22:48:35 | 显示全部楼层   山东省济南市
使用E2EE支持库
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
a存取cha询器 
b存取键值表 
a.From ( #常量1, “props[1].values[]”, , , ).Where (“vid=28341”, , ).取首条 (b)
调试输出 (b.取文本 (“name”))


i支持库列表   支持库注释   
e2eeE2EE互联网服务器套件
spec特殊功能支持库


* “黑色”
被调试易程序运行完毕

回复

使用道具 举报

结帖率:85% (41/48)
 楼主| 发表于 2019-12-6 16:53:13 | 显示全部楼层   河北省石家庄市
逍遥一仙LSG 发表于 2019-12-3 22:48
使用E2EE支持库
[e=1].版本 2
.支持库 e2ee

这个支付库看起来不错哦,像sql的cha询语句。
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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