我有这些数据在thhe代码背后,并试图将其传递到javascript函数的各种格式:列表数组,json字符串,但无法通过javascript var对象获取数据。
下面是后面代码中的最后一种数据格式:
List<string>[] array2 = new List<string>[listLenght];
array2.Initialize();
for (int ii = 0; ii < listLenght; ii++)
{
array2[ii] = new List<string>();
array2[ii].Add(Convert.ToString(dt.Rows[ii][5]));
array2[ii].Add(Convert.ToString(dt.Rows[ii][9]));
array2[ii].Add(Convert.ToString(dt.Rows[ii][10]));
array2[ii].Add(Convert.ToString(dt.Rows[ii][11]));
}
然后尝试用这种方式调用javascript:
string createArrayScript = string.Format("var array2 = [{0},{1},{2},{3}];",
string.Join(",",",",",", array2));
但返回错误:
用户代码未处理FormatException。
索引(从零开始)必须大于或等于零,并且小于主题列表的大小
这是对函数的调用:
Page.ClientScript.RegisterStartupScript(this.GetType(), "registerPoiArray", createArrayScript, true);
下面是javascript的var格式:
var markers = Poi;
var markers = [
{
"title": "via Andria, Roma",
"lat": 41.8902643,
"lng": 12.6638589,
"description": "fdsad"
},
{
"title": "via canosa, Roma",
"lat": 41.8838417,
"lng": 12.5438227,
"description": "fdsad"
},
{
"title": "via taranto, Milano",
"lat": 45.4383343,
"lng": 9.1505354,
"description": "fdsad"
},
{
"title": "via barletta, Roma",
"lat": 41.9102707,
"lng": 12.4580826,
"description": "fdsad"
}];
我不能在javascript中传递这个数组。
5条答案
按热度按时间mgdq6dx11#
你可以创建一个自定义类来表示数据表。假设你的数据表有四列,创建一个自定义类,其中有4个字段。循环遍历数据表,并将其转换为自定义类类型的对象数组。
最后,您可以使用以下代码将数组序列化为JSON。
其中data是对象数组。
这是我用的技巧。
数据表不能直接序列化到JSON。参考What's the best way to jSON serialize a .NET DataTable in WCF?
tyg4sfes2#
当使用字符串时,你必须转义花括号。如果你想让它吐出实际的花括号字符,格式化。
示例:
gblwokeq3#
尝试使用
并改变你所得到的结构。
eivnm1vs4#
当我提出解决方案的时候我创造了一个要点。
希望这对你有用...
此致,
cu6pst1q5#
只需使用NewtonSoft Json并调用: