2014-07-14 33 views
0

將C#中的二維數組(如[[1,2,3],[4,5,6]])轉換爲字符串「[[ [1,2,3],[4,5,6]]「,除了遞增每個值並手動添加語法?將C#二維數組格式化爲Javascript

我想在我的webView.ExecuteJavascript()方法中使用該數組作爲參數,該方法將方法名稱字符串作爲參數。理想的情況是,在C#中,它看起來像

webView.ExecuteJavascript("updateValues([[1, 2, 3],[4, 5, 6]])") 

的updateValues功能的JavaScript看起來像這樣

updateValues(newvalues) { 
oldvalues = newvalues 
} 

會不會有這樣做的更簡單的方法?眼下,結果存儲在雙陣列(列表)的列表,並調用.ToArray()的ToString(),在窗體像這樣:

webView.ExecuteJavascript("updateValues(" + gaugeCol.ToArray().ToString() + ")"); 

只給我的變量類型,而不是實際值。

感謝

+0

如果您在詢問關於庫的建議,那麼這超出了本網站的範圍。正如你所知道的,沒有別的辦法,只能通過每個元素並將它們轉換爲字符串。 – akonsu

回答

1

您可以使用像這樣的表達把數組列表到JavaScript語法:

"[" + String.Join(",", gaugeCol.Select(g => 
    "[" + String.Join(",", Array.ConvertAll(g, Convert.ToString)) + "]" 
)) + "]" 
+0

我很好奇它爲什麼被低估。什麼,這段代碼不會產生所需的結果? – akonsu

+0

@akonsu:我也很好奇。代碼已經過測試,並且確實產生了所需的結果。 – Guffa

4

您可以使用JavaScriptSerializer

var arr = new[] { new[] { 1, 2, 3 }, new[] { 4, 5, 6 } }; 
string json = new JavaScriptSerializer().Serialize(arr); 

Json.Net

string json = JsonConvert.SerializeObject(arr); 

這樣,您可以將幾乎任何類型的對象轉換爲json,而不僅僅是數組...