我正在使用 JavaScript 客户端和 ac# 套接字服务器以 JSON 格式来回发送消息。
在服务器上,我有一个多维数组,如下所示:
MapData[0,0,0] = 1;
MapData[0,0,1] = 2;
它的尺寸是 900x900x2
如果我这样做,在 JavaScript 中我会json.stringify(MapData)
得到这样的
[[[1,2],[3,4]]]
ETC
但是c#jsonconvert.serializeobject(MapData)
给了我这样的:[1,2,3,4]
有人可以解释为什么 c# serialize 和 JavaScript stringify 给出不同的值吗?
我试过了
int[][][] MapData = new int[900][][];
// Zero out the map
for (int variable1 = 0; variable1 <= 899; variable1++) {
for (int variable2 = 0; variable2 <= 899; variable2++) {
MapData[variable1][variable2][0] = 0;
}
}
但它在 MapData[variable1][variable2][0] = 0 处引发未处理的空异常;
终于在杰夫的帮助下弄明白了
int[][][] MapData = new int[900][][];
// Zero out the map
for (int a = 0; a < MapData.Length; a++)
{
MapData[a] = new int[900][];
for (int b = 0; b < MapData[a].Length; b++)
{
MapData[a][b] = new int[2];
for (int c = 0; c < MapData[a][b].Length; c++)
MapData[a][b][c] = 0;
}
}
然后 JsonConvert.SerializeObject(MapData) 像我想要的那样工作
谢谢你指出我正确的方向杰夫