Désérialiser un tableau JSON nested en C #

J’ai un tableau JSON avec des objects nesteds, représentant un menu, comme ceci:

[ [ { "name": "Item 1", "id": 1 }, { "name": "Item 2", "id": 2, "children": [ [ { "name": "Item 21", "id": 21 } ] ] }, { "name": "Item 3", "id": 3, "children": [ [ { "name": "Item 31", "id": 31, "children": [ [ { "name": "Item 311", "id": 311 }, { "name": "Item 312", "id": 312 } ] ] }, { "name": "Item 32", "id": 32 }, ... 

Et je veux le désérialiser à l’aide de JavaScriptSerializer. J’ai du code comme indiqué ci-dessous mais ne fonctionne pas.

 var serializer = new JavaScriptSerializer(); var objects = serializer.Deserialize(jsonData); ... public class Menu { public int id { get; set; } public ssortingng name { get; set; } public Menu[] children { get; set; } } 

L’erreur que je reçois est “Le type ‘Menu’ n’est pas supporté pour désérialiser une masortingce”. J’apprécierais toute aide sur la façon de déclarer l’object personnalisé.

À votre santé.

Votre object racine est un tableau 2D déchiqueté d’objects. Les propriétés "children" sont également des tableaux 2D déchiquetés. Ainsi, votre classe de Menu doit être:

 public class Menu { public int id { get; set; } public ssortingng name { get; set; } public Menu [][] children { get; set; } } 

Et désérialisez votre JSON comme suit:

 var serializer = new JavaScriptSerializer(); var objects = serializer.Deserialize(jsonData); 

Sinon, si vous préférez les listes aux tableaux, faites:

 public class Menu { public int id { get; set; } public ssortingng name { get; set; } public List> children { get; set; } } 

Et alors

 var objects = serializer.Deserialize>>(jsonData); 

Le problème pourrait-il être que les données réelles sont un tableau mais que vous lui dites d’attendre un seul menu?