2012-09-03 245 views
1

我目前正在編寫一個查詢,需要通過json將一個字符串數組發送到一個webresource。 這是我需要調用webresource:如何將javascript字符串數組轉換爲json字符串數組?

[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] 

Result API.ImportByNumbers(string[] _Numbers) {} 

現在我不知道如何形成的json數據。我試圖發送一個正常的JavaScript字符串數組中的所有數字,但是這給一個

Could not process child error

當我嘗試對象

Data = '{"ID":"1", "ID":"2"}' 

內webresource值始終是空的數組。 ..

任何人都可以幫忙嗎?

+0

'數據= '{ 「ID」= 「1」, 「ID」= 「2」}''是不有效的JSON。 –

+0

嘗試使用「{」ID「:」1「,」ID「:」2「}' – Onheiron

+0

對不起,我已經使用':'而不是'='。 – user1643956

回答

1

好的。我發現瞭解決方案:

var idArray = ...  array of strings  
var Data = {"_Numbers": idArray } 

然後在查詢:

Data = JSON.stringify() 
0

由於你的webmethod需要string[] _Numbers所以你必須傳遞這樣一個json數據,它將發送數字串。類似這樣的。

var string = {「1」,「2」,「3」};

var jsonData="{"+"_Numbers:"+"'"+string+"'"+"}" 
+0

我也嘗試過......並且_Numbers的值始終爲空。 – user1643956

+0

你可以發佈你的ajax代碼嗎? – Ashirvad

+0

$阿賈克斯({ 類型:類型, 網址:網址, 數據:數據, 的contentType:ContentType的, 數據類型:數據類型, 過程數據:過程數據, 成功:函數(MSG){ 調試; 警報( 「import successfull」) }, error:ServiceFailed }); – user1643956

0

貌似服務期望接收一個數組,而不是一個對象,所以你應該儘量不要使事情變得複雜和發送這樣的事情:

var json_str = "[1,2,3]" 

但如果你真的需要一個JSON對象,那麼你應該試試這個

var json_str='{"_Numbers":[1,2,3]}' 
+1

我已經試過了你的答案並且它們不起作用: 第一個給出了一個錯誤:期望值類型和對象 所以我想它需要一個json對象 第二個給出了一個錯誤:期望'/'找到'_',這可能是由於名稱_Numbers以_開頭嗎? – user1643956

相關問題