使用c#代码动态创建javascript数组

我正在将旧的经典ASP站点更新为新的.net 3.5版本。 该页面有一个自定义列表控件,客户端(我的老板)想要保留。 此列表控件需要多个数组才能正常工作。 该数组是一个多维的出版物清单。 这就是它的样子:

var publicationTable = [ [31422,"Abilene Reporter News","Abilene","TX",false,"D",0], [313844,"Acadiana Weekly","Opelousas","LA",false,"W",1], [527825,"Action Advertiser","Fond du Lac","WI",false,"W",2]...n] 

我想生成这个arrays服务器端并注册它。 我看过msdn,但这有点小事。 概念问题是数组是字符串和整数的混合,我不知道如何重新创建这个,所以如何?

你应该做这个:

代码背后:

 using System.Web.Script.Serialization; ... public string getJson(){ var publicationTable = new List{ new []{ 31422,"Abilene Reporter News","Abilene","TX",false,"D",0}, new []{ 313844,"Acadiana Weekly","Opelousas","LA",false,"W",1 }, new []{ 527825,"Action Advertiser","Fond du Lac","WI",false,"W",2} }; return (new JavaScriptSerializer()).Serialize(publicationTable); } 

你知道,为了创建一个混合类型的数组,我们用new []创建一个匿名类型的数组。 您也可以使用new object[]完成它。

Aspx文件:

  

希望这可以帮助。 干杯

我认为包含你的项目的List>可以通过JavaScriptSerializer传递 。 鉴于此数据可能来自更结构化的数据类型,您可能比List>做得更好,但JavaScriptSerializer可能就是您所追求的。

这会有用吗?

 ArrayList list = new ArrayList{31422,"Abilene Reporter News","Abilene","TX",false,"D",0}; var str = string.Format("[{0}]", list.Cast().Select(x => (x is string)? string.Format(@"""{0}""", x) : x.ToString()) .Aggregate((x, y) => string.Format("{0}, {1}", x, y))); 

它可以以类似的方式扩展为多维arrays。