7
votes

JSON.NET Serialise incorrectement un tableau de deux dimensions à une dimension une

essayer de convertir un tableau de deux dimensions en une matrice JSON.NET deux dimensions.

Y a-t-il quelque chose qui ne va pas avec le code ci-dessous? Ou juste n'est-ce pas pris en charge par json.net? xxx


0 commentaires

4 Réponses :


4
votes

Lorsque vous définissez un tableau comme vous l'avez fait, il n'est pas une matrice, c'est le même tableau avec deux dimensions C'est pourquoi SerializeObject la sérialisez-le comme le même tableau.


1 commentaires

+1 ... Je pense à une matrice et à un tableau 2D comme étant conceptuellement la même chose ... Donc, je trouve qu'il est difficile de suivre. Vous voulez dire en termes de représentation .NET sous-jacente?



10
votes

JavaScript n'a pas la notion d'un tableau 2D dans le même sens que c # fait. Afin d'obtenir un tableau comme celui décrit Ici Vous aurez besoin de créer un tableau de tableaux.

// output: [[1,1,1,1],[2,2,2,2]]
var a = new int[][] { new[]{ 1, 1, 1, 1 }, new[]{ 2, 2, 2, 2 } };


3 commentaires

+1: Je vais jouer avec un convertir une matrice 2D en une matrice déchiquetée. Peut-être que ça va le faire. ty.


Cette réponse est obsolète. voir @'s ci-dessous


@Robertlevy: Merci d'avoir apporté cela à mon attention.



1
votes

Je suis surpris que cela fonctionne du tout. Json.net ne prend pas en charge les tableaux multidimensionnels. Utilisez plutôt un tableau déchiqueté.


1 commentaires

Pouvez-vous donner une raison pour que cela ne supporte pas cela? Est-ce à cause de l'ambiguïté lors de la conversion de JSON?



11
votes

Commencer avec JSON.NET 4.5 Relase 8 Les matrices multimupères sont prises en charge .

Votre exemple fonctionnera maintenant et produisez le JSON suivant: P>

[ [ 1, 1, 1, 1 ], [ 2, 2, 2, 2 ] ]


0 commentaires