2012-03-14 53 views
0

我想從C#動態傳遞一個雙數組到一些JavaScript代碼。下面是我現在怎麼做:C#JavaScript序列化問題

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
var jsLat = serializer.Serialize(lat); 

我隨後致電InvokeScriptjsLat作爲參數。

當我在JS端嘗試lat.length時,我得到了正確的長度,但是當我嘗試做lat[#]時,所有的值都會返回爲undefined。

此外,當我做alert(lat.valueOf())我看到所有的值。

爲什麼所有的值都回到未定義?

+0

'lat [#]'應該是什麼?這不是一個有效的js代碼。 – kirilloid 2012-03-14 16:21:32

+0

什麼是生成的來源? – SLaks 2012-03-14 16:21:58

+0

#是任何有效的索引(要完全清楚:lay [0],lat [1] ...) – user472875 2012-03-14 16:23:27

回答

0

您正在尋找所有現代瀏覽器支持的JavaScript端JSON.parse函數。除非您需要支持IE7/IE6,否則它是內置函數,對於IE6/7,有JavaScript實現(詳情請查看http://json.org)。

var result = JSON.parse("{lat:1234, lon:567"}) 

如果您正在使用jQuery您可以使用jQuery.parseJSON支持所有瀏覽器。

+0

jQuery位做了訣竅,謝謝。我很驚訝C#沒有直接的方法來做這個操作。 – user472875 2012-03-14 16:54:45

+0

@ user472875,C#**不會在瀏覽器中運行...並且如果需要服務器端,C#會在JavaScriptSerializer中對JSON進行反序列化。 – 2012-03-14 17:12:48

+0

我的意思是更像這樣:http://www.codeproject.com/Articles/35373/VB-NET-C-and-JavaScript-communication#patjs – user472875 2012-03-14 17:28:10