『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 497|回复: 2

[已解决] 请问在node-red怎样处理http request返回数据?

[复制链接]

9

主题

115

帖子

1159

积分

论坛技术达人

积分
1159
金钱
1039
HASS币
20
发表于 2023-5-29 01:08:10 | 显示全部楼层 |阅读模式
本帖最后由 hunl1986 于 2023-5-29 02:20 编辑

我的流程是这样的
1.JPG
http request执行后返回数值
{"Message":"","Data":[{"DeviceId":"826e7238c021424c9c74c890ab5c5446","DeviceStatus":"[0,0,1,0,0,0,42.000,32,8,0,0,0,32,0,17,31,0,0,80,38,0,0,0,0,32,18,0,16,12,1,0,0,0,0,0,0]","OnlineStatus":true}],"Code":200}

我想要获取 2.JPG 中第二个“0”,请问在“数据处理”里的代码怎么样写呢?

回复

使用道具 举报

9

主题

115

帖子

1159

积分

论坛技术达人

积分
1159
金钱
1039
HASS币
20
 楼主| 发表于 2023-5-29 02:21:31 | 显示全部楼层
let jsonData = msg.payload;
let deviceStatus = JSON.parse(jsonData.Data[0].DeviceStatus); // 将DeviceStatus从字符串转换为数组
let secondZero = deviceStatus[1]; // 获取数组中第二个元素的值
msg.payload = secondZero;
return msg;

自己解决,本来想一行解决,错误了,分开写就好写了
回复

使用道具 举报

8

主题

156

帖子

887

积分

高级会员

Rank: 4

积分
887
金钱
731
HASS币
0
发表于 2023-5-29 14:42:48 | 显示全部楼层
response = '{"Message":"","Data":[{"DeviceId":"826e7238c021424c9c74c890ab5c5446","DeviceStatus":"[0,0,1,0,0,0,42.000,32,8,0,0,0,32,0,17,31,0,0,80,38,0,0,0,0,32,18,0,16,12,1,0,0,0,0,0,0]","OnlineStatus":true}],"Code":200}'

# 解析JSON数据
data = json.loads(response)
# 获取第一个设备的状态信息
device_status = data["Data"][0]["DeviceStatus"]
# 将状态信息转化为列表
status_list = json.loads(device_status)
# 获取第二个数值
second_value = status_list[1]
print(second_value)
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 15:20 , Processed in 0.127394 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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