JavaScriptクライアントとac#ソケットサーバーを使用して、JSONでメッセージを送受信しています。
サーバー上に私は次のような多次元配列を持っています:
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#シリアル化とJavaScript文字列化が異なる値を与えている理由を説明できますか?
私は試した
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で未処理のnull例外がスローされます。
ついにジェフの助けを借りてそれを理解した
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)は希望どおりに機能します
私を正しい方向に向けてくれてありがとうジェフ