如何将序列化多维数组从C#传递到Javascript

如何将序列化多维数组从C#传递到Javascript,javascript,c#,asp.net,Javascript,C#,Asp.net,我需要将一个矩阵从C#code behind传递到javascript,但是当我的矩阵传递到视图时,它被转换为一个一维数组。换句话说,我的多维数组被序列化压扁了 C#代码 如何传递序列化多维数组?使用锯齿数组而不是二维数组 首先,在不初始化数组的情况下声明数组:public object[][]arrayTemperatura 然后在while循环后执行此操作: arrayTemperatura = new object[listaleituras.length][]; foreach (va

我需要将一个矩阵从C#code behind传递到javascript,但是当我的矩阵传递到视图时,它被转换为一个一维数组。换句话说,我的多维数组被序列化压扁了

C#代码


如何传递序列化多维数组?

使用锯齿数组而不是二维数组

首先,在不初始化数组的情况下声明数组:
public object[][]arrayTemperatura

然后在
while
循环后执行此操作:

arrayTemperatura = new object[listaleituras.length][];

foreach (var leitura in listaleituras)
{
    arrayTemperatura[i] = new object[3];
    arrayTemperatura[i][0] = leitura.Data.Month.ToString() + "/"+ leitura.Data.Year.ToString();
    arrayTemperatura[i][1] = leitura.Sensor_temperatura;
    arrayTemperatura[i][2] = leitura.Sensor_temperatura;
    i++;
}
或者,您可以使用而不是
JavaScriptSerializer
——我创建了一个示例来说明它的行为与您在问题中所期望的方式相同:

使用

它可以根据需要序列化多维数组

然后在javascript中,您可以使用
json.parse对json进行去序列化

var multidimentionArray = JSON.parse( json_string );

另请参见

作为旁注,假设leitura.Data是一个日期时间,可以使用
arrayTemperatura[i][0]=leitura.Data.ToString(“M/y”)完成格式化日期在javascript中我必须添加:var array=JSON.parse(“”);console.log(数组);为什么否决了我的问题?
arrayTemperatura = new object[listaleituras.length][];

foreach (var leitura in listaleituras)
{
    arrayTemperatura[i] = new object[3];
    arrayTemperatura[i][0] = leitura.Data.Month.ToString() + "/"+ leitura.Data.Year.ToString();
    arrayTemperatura[i][1] = leitura.Sensor_temperatura;
    arrayTemperatura[i][2] = leitura.Sensor_temperatura;
    i++;
}
string json_string = JsonConvert.SerializeObject(arrayTemperatura);
var multidimentionArray = JSON.parse( json_string );