无法使用curl将JSON数据发送到Web服务器

时间:2017-07-20 04:30:10

标签: arrays json curl

我正在尝试向网络服务器发送一个curl命令来控制我家中的设备。 Web服务器包含以下JSON数据:

{"result":1, "error":null, "id":0, "data":{"vid":2, "did":4, "device_type":"airconditioner", "default_name":"Air Conditioner Settings", "tags":"aircon", "is_sensor":1, "is_actuator":1, "is_silent":0, "has_time_series":0, "has_subdevice_count":0, "has_state":0, "gid":"0", "guid":"xxxx", "node":"yyy", "meta":{}, "shortName":"", "subDevices":{}, "last_data":{"DA":{"amOn":false, "tempTarget":22, "mode":1, "fanSpeed":0, "enabledZones":[1,1,0,0,0,0,0,0]}, "timestamp":1500523622862}}

使用curl我可以发送以下PUT命令来打开设备:

curl -v -H "Accept: application/json" -H "Content-Type: application/json" -X PUT -d '{"DA":{"amOn":"true"}}' https://actron.ninja.is/rest/v0/device/xxxx?user_access_token=zzzz

但是我发送PUT命令来改变enabledZones数组中的数字。

我尝试了以下命令的许多变体但没有成功:

curl -v -H "Accept: application/json" -H "Content-Type: application/json" -X PUT -d '{"DA":{"enabledZones[1]":"0"}}' https://actron.ninja.is/rest/v0/device/xxxx?user_access_token=zzzz

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

我认为你在json中发送了不正确的数组请求。要使用0更新数组元素1,您需要使用"enabledZones":[1,0,0,0,0,0,0,0]

请查看以下CURL命令是否有效

curl -v -H "Accept: application/json" -H "Content-Type: application/json" -X PUT -d '{"DA":{"enabledZones":[1,0,0,0,0,0,0,0]}}' https://actron.ninja.is/rest/v0/device/xxxx?user_access_token=zzzz