我的API请求添加以下格式的某些内容:
{
"name": "good night",
"actions": "[{ \"deviceId\": \"c39181d52abe5555\", \"actionName\": \"turnOff\", \"params\": [], \"meta\": \"{}\" }, { \"deviceId\": \"f597c13717008fb1\", \"actionName\": \"armStay\", \"params\": [\"1234\"], \"meta\": \"{}\" }]",
"meta": "{}"
}
所以我做了以下事情:
static postRoutine(nombre, action) {
return $.ajax({
url: api.routines.url,
method: "POST",
dataType: "json",
timeout: api.timeout,
data: {'name': nombre, 'actions': action, 'meta': "{}"},
})
}
我不知道如何建立'行动'?我的意思是它被假定为一个内部有字符串的数组或什么?
我这样做但是不起作用:
var actions = [];
var action1 = "{ \\\"deviceId\\\": "; "\\\"" + item1.id + "\\\", \\\"actionName\\\": \\\"" + action + "\\\", \\\"params\\\": [], \\\"meta\\\": \\\"{}\\\" }";
actions[0] = action1;
api.routines.postRoutine(rut_name, actions).done(function(data){
...//blah blah blah
});
基本上我把一个字符串放在动作的第一个位置和方法的传递动作中。
更新:这是什么工作
var actions = [{"deviceId": item1.id, "actionName": action, "params": [], "meta": "{}"];
答案 0 :(得分:2)
尝试 JSON.stringify()
var arrActions = [{deviceId: 'c39181d52abe5555'}];
var strActions = JSON.stringify(arrActions);
console.log(strActions, typeof strActions);