2013-05-11 41 views
1

我有方法,根據3個輸入參數創建JSON請求:如何在javascript中根據輸入創建json請求的通用方法?

function jsonRequest(_action, _data1, _data2){ 
    var jsonData = JSON.stringify({ 
     data:{ 
      action: _action 
      ,data1: _data1 
      ,data2: _data2 
     } 
    }); 
return jsonData; 
} 

如果我想的參數輸入的未知數量,可以說4

所以我的功能應該如何打理關於?

喜歡的東西:

jsonRequest("103","blabla","bobob", ....); 

它必須是通用處理的參數的任何數量。

在我的例子中,我沒有使用angularjs,但你很歡迎。

請,幫助,

謝謝

回答

1

功能有一個叫做arguments其中包含已調用過程中傳遞到該函數一切隱藏的陣列狀的變量。它將類似於:

function jsonRequest(){ 
    var _action = arguments[0]; 
    var _data1 = arguments[1]; 
    var _data2 = arguments[2]; 

    //the rest of the code here 

} 

您可以遍歷參數,並將所需數據附加到對象。您可以設置第一次迭代以追加_action,其餘的追加_dataN,其中N是索引。

arguments只包含值,沒有名稱。我建議你將一個對象傳遞給你的函數。

function jsonRequest(data){ 
    return JSON.stringify({data : data}); 
} 

jsonRequest({ 
    action : ..., 
    data1 : ..., 
    data2 : ... 
}); 
+0

是的,我知道,但我需要獲取他們的名字來建立請求。請給我舉個例子。謝謝 – 2013-05-11 07:11:17

+0

嗯,這就是'JSON.stringify'所做的,將'{action:..,data:..}'轉換爲String。由於對象結構的原因,Netbeans中的自動對齊代碼將請求消費到多行。我想通過創建單個方法(或angularjs中的服務)來阻止它。 – 2013-05-11 07:16:34

相關問題