C#到JavaScript序列化问题

C# to JavaScript Serialization issue

本文关键字:问题 序列化 JavaScript      更新时间:2023-09-26

我正试图将一个双数组从C#动态传递给一些JavaScript代码。以下是我现在的做法:

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

然后我用jsLat作为参数调用InvokeScript

当我在JS端尝试lat.length时,我得到了正确的长度,但当我尝试lat[#]时,所有值都返回为未定义。

此外,当我执行alert(lat.valueOf())时,我会看到所有的值。

为什么所有的值都是未定义的?

您正在寻找所有现代浏览器都支持的JavaScript端的JSON.parse函数。除非您需要支持IE7/IE6,否则它是内置函数,对于IE6/7,有JavaScript实现(请查看http://json.org详细信息)。

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

如果您使用的是jQuery,则可以使用支持所有浏览器的jQuery.parseJSON。