1

Je passe (ou essaie bien de!) Un objet JSON à mon codebehind.JSON.NET désérialisation d'un tableau multidimensionnel?

C'est l'objet JSON:

[ 
    { 
     "testLaag":{ 
      "layer_zindex":1, 
      "layer_type":1, 
      "layer_width":1, 
      "layer_height":1, 
      "layer_offset_left":1, 
      "layer_offset_top":1, 
      "layer_html":1, 
      "layer_fontcolor":1, 
      "layer_fontsize":1, 
      "layer_rotation":1, 
      "layer_color":1, 
      "layer_name":1, 
      "layer_fontFamily":1 
     }, 
     "testLaag2":{ 
      "layer_zindex":2, 
      "layer_type":2, 
      "layer_width":2, 
      "layer_height":2, 
      "layer_offset_left":2, 
      "layer_offset_top":2, 
      "layer_html":2, 
      "layer_fontcolor":2, 
      "layer_fontsize":2, 
      "layer_rotation":2, 
      "layer_color":2, 
      "layer_name":2, 
      "layer_fontFamily":2 
     } 
    } 
] 

Le code du code sous-jacent:

string data = "[" + Request.Form["layers"] + "]"; 
JsonSerializerSettings settings = new JsonSerializerSettings(); 
settings.TypeNameHandling = TypeNameHandling.All; 
List<Laag> layers = JsonConvert.DeserializeObject<List<Laag>>(data, settings); 

foreach (Laag laag in layers) 
{ 
    Response.Write(laag.layer_name); 
} 

Et voici ma classe:

public class Laag 
{ 
    public int layer_zindex {get; set;} 
    public int layer_type { get; set; }  
    public double layer_width { get; set; } 
    public double layer_height { get; set; } 
    public double layer_offset_left { get; set; } 
    public double layer_offset_top { get; set; } 
    public string layer_html { get; set; } 
    public string layer_fontcolor { get; set; } 
    public double layer_fontsize { get; set; } 
    public double layer_rotation { get; set; } 
    public string layer_color { get; set; } 
    public string layer_name { get; set; } 
    public string layer_fontFamily { get; set; } 
} 

Il est en train de conduire moi à la fois et mon collègue noix. Tout ce que nous voulons, c'est d'avoir les deux objets "laag" dans un objet List. JSON et comment traiter sont assez nouveaux pour nous deux, donc nous manquons probablement quelque chose d'incroyablement stupide.

Merci à l'avance,

-Ferdy

Répondre

1

Créer une autre classe wrapper

public class wrapperOfLaag{ 
    public List<Laag> listLag; 
} 

puis essayez

string data = "[" + Request.Form["layers"] + "]"; 
JavaScriptSerializer ser = new JavaScriptSerializer(); 
wrapperOfLaag p = ser.Deserialize<wrapperOfLaag >(data); 
Questions connexes