yinghu183 发表于 2020-12-26 20:04:44

请教大佬们关于获取某线路上公交车位置推送到微信的问题

本帖最后由 yinghu183 于 2020-12-26 20:06 编辑

找了个公交车的api,可以获取到某条公交线路上正在跑的每辆公交车的位置,就是下图中buses列表下的。第一辆车的数据就是 msg.payload.returl_list.buses.dis_stat,第二辆就是 msg.payload.returl_list.buses.dis_stat,以此类推。

然后呢,我只会编辑一定数量车辆的msg.payload数值,比如5辆,然后一起编辑好,推送到微信。可是现在问题是buses列表下的公交车数量是变化的,有时候这条线路上有5辆车在跑,有时候是4辆,有时候是3辆。我如果在推送内容中编辑好5辆,而在跑的又不到5辆,就会报错,因为 msg.payload.returl_list.buses.dis_stat数值不存在。
请教大佬,像这种情况,推送内容要怎么写,才能动态引用get节点中buses列表下的所有数值,非常感谢!

余歌唱晚 发表于 2020-12-26 20:38:13

先取buser的数量再轮询

yinghu183 发表于 2020-12-26 20:41:08

余歌唱晚 发表于 2020-12-26 20:38
先取buser的数量再轮询

土木狗完全不明白:'(

discuz 发表于 2020-12-26 22:46:29

返回的是json格式数据吧?先当前在线的公交车数量
count = msg.payload.result_list.buses.length然后根据你的需求自己写了。

没必要查那么多吧,查3个的结果应该够你用了

raspberry0316 发表于 2020-12-27 02:03:52

本帖最后由 raspberry0316 于 2020-12-27 15:40 编辑

提前把消息整合 然后再作为整体让微信推送呗。就简单多了。之前想推送家里指定传感器状态信息的时候也是因为会获取到一大堆数据。所以大概写了 function提取数据,我觉得改一改你这个应该适用。var i, output;
for (i = 0, output = ""; i < 3; i++) {      这里大概就是你需要的数量 比如xxxxx用来整合成整体消息 给微信用
output += cgq.entity_id] +":" + cgq.state] + "\n";
}
msg.payload = output

return msg

yinghu183 发表于 2020-12-27 09:55:23

discuz 发表于 2020-12-26 22:46
返回的是json格式数据吧?先当前在线的公交车数量
然后根据你的需求自己写了。



感谢大佬,你的这行代码对我帮助很大。

yinghu183 发表于 2020-12-27 09:58:25

raspberry0316 发表于 2020-12-27 02:03
提前把消息整个 然后再作为整体让微信推送呗。整合部分可以利用key value的关系把有效值提取,空置或者无效 ...

感谢大佬,我参考了你和你楼上那位大佬的代码,实现了我需要的目的。
var count = msg.payload.returl_list.buses.length

var i, output;
for (i = 0, output = ""; i < count; i++) {   
output += "距离" + .dis_stat] +"站"+"还有" + .distance]+"米" + "\n";
}
msg.payload = output

return msg

我完全小白一个,就上面实现我目的的几句话,我折腾了一个多小时。。。。。。

raspberry0316 发表于 2020-12-27 15:33:38

yinghu183 发表于 2020-12-27 09:58
感谢大佬,我参考了你和你楼上那位大佬的代码,实现了我需要的目的。




能用就行,想用function多一点就空闲时间看看网上的逻辑与语法,上手会快一些。

yinghu183 发表于 2020-12-27 17:37:24

raspberry0316 发表于 2020-12-27 15:33
能用就行,想用function多一点就空闲时间看看网上的逻辑与语法,上手会快一些。 ...

再次感谢!

sasukebinbin 发表于 2020-12-27 22:19:09

论坛里大佬就是多呀. 我曾经也找过natic大神帮忙搞json
页: [1] 2
查看完整版本: 请教大佬们关于获取某线路上公交车位置推送到微信的问题