我正在与一个JavaScript客户端和一个C#套接字服务器在JSON中来回发送消息。奇怪之间JsonConvert.SerializeObject和json.stringify
在服务器上我有一个多维数组,像这样:
MapData[0,0,0] = 1;
MapData[0,0,1] = 2;
其尺寸为900x900x2
在JavaScript如果我做json.stringify(MapData)
我得到这样
[[[1,2],[3,4]]]
等
但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 [变量1] [变量2] [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)就像我想
三江源指着我在正确的方向杰夫
但我需要将整个数组转换成JSON客户端可以理解,因为它需要采取JSON和转储到一个与JavaScript阵列。 – BrierMay 2013-02-16 01:06:09
然后将您的阵列更改为锯齿状阵列。或者在序列化之前即时修改它,尽管这样效率很低。 – 2013-02-16 01:26:12
谢谢你指点我在你和谷歌之间的正确方向我知道了它。现在进入下一个问题 – BrierMay 2013-02-16 02:40:53