2016-11-18 174 views
0

我有一個API可以接受單個數據或批量數據,然後相應地發送響應。在發送單個數據時,我發送的數據如下,如何將數據添加到對象?

var contactId = 123; 
var url = "www.abc.com"; 
var companyName = "ABC"; 
var compLink = "/abc/123/link"; 
var randomKey = generateRandomKey(); 

    $.ajax({ 
     url:liurl, 
     type:"POST", 
     data:JSON.stringify({ 
      "verification_key":randomKey, 
      "listData" : 
       [{ 
       "contactid":contactId, 
       "url": url, 
       "li_company":companyName, 
       "complink":compLink 
      }] 
     }), 
     contentType:"application/json", 
     dataType:"json", 
     success: function(result){ 
      $.each(result, function(index, element) { 
       //perform operation on 'result' 
      }); 
     } 
    }); 

上面的代碼完美地工作,我得到了相應的響應。現在,當我想在一個時間來驗證超過1個記錄listData應該是這樣的,

{ 
    "verification_key":"d0vvNl04dk3y", 
    "listData" : 
     [{ 
     "contactid":"241", 
     "url":"http://www.name.com/in/daveandrews", 
     "companyName":"Devious Media", 
     "complink":"/company/devious-media" 
    }, 
    { 
     "contactid":"242", 
     "url":"http://www.name.com/in/something", 
     "companyName":"Sol Media", 
     "complink":"/company/somemedia" 
    },{ 
     "contactid":"243", 
     "url":"http://www.name.com/in/daveandrews", 
     "companyName":"Mega Media", 
     "complink":"/company/xyzmedia" 
    }] 
} 

正如你可以看到listData包含細節超過1分的紀錄。我無法弄清楚如何將這些多個數據結合到一個對象中併發送給API。僅供參考,contactid, url, companyName and complink的值存儲在一個數組中。 例如:

var contactid = [1,2,3,4,5] 
var companyName = ["abc","xyz","qwe","asd","zxc"]; 
+0

您需要遍歷第一個數組,並使用循環的索引從第二個(或更多)數組中拉入正確的值 - 這是假設它們將始終處於完美的順序 - 查看此內容starters https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach –

+0

「將這些多個數據結合到一個對象中」是什麼意思?因爲重要的是,你的API期望什麼?我想它會期待你在第二個代碼塊中顯示的內容,但當然,我不知道這一點。 –

+0

是的,API接受數據如第二個代碼塊 –

回答

2

您是在尋找一些聰明的東西,還是這很簡單?我不認爲這有一個神奇的功能方法,但也許其他人比我更聰明。

假設你的數組的長度相同,這樣的事情:

let listData = []; 

for (let i=0; i < contactid.length; i++) { 
    listData.push({ 
     contactid: contactid[i], 
     url: "http://www.name.com/in/something", 
     li_companyName: companyName[i], 
     complink: complink[i] 
    }); 
} 

與具有正確格式的ListData,只需將其連接到您的請求(有如何組裝新的請求更新)直。

$.ajax({ 
    url:liurl, 
    type:"POST", 
    data:JSON.stringify({ 
     "verification_key":randomKey, 
     "listData" : listData 
    }), 
    contentType:"application/json", 
    dataType:"json", 
    success: function(result){ 
     $.each(result, function(index, element) { 
      //perform operation on 'result' 
     }); 
    } 

});

+0

所示這與我正在查找的非常相似,您能否告訴我如何在我的第二個代碼塊中顯示如何添加'verification_key'。請記住,verification_key將僅添加一次。 –