API的POST方法:如何传递数组?

时间:2018-05-14 02:58:38

标签: javascript jquery ajax

我的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": "{}"];

1 个答案:

答案 0 :(得分:2)

尝试 JSON.stringify()



var arrActions  = [{deviceId: 'c39181d52abe5555'}];
var strActions = JSON.stringify(arrActions);
console.log(strActions, typeof strActions);