1

JSON 객체를 내 코드 숨김에 전달하고 있습니다.다차원 배열을 비 직렬화하는 JSON.NET?

[ 
    { 
     "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 
     } 
    } 
] 

뒤에 코드에서 코드 :

는 JSON 객체입니다

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; } 
} 

그것은 현재 나 모두 운전 : 여기

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); 
} 

그리고 나의 클래스 내 동료 견과류. 우리가 원하는 것은 List 객체에 두 개의 "laag"객체를 둘 것입니다. JSON과 처리 방법은 우리 모두에게 상당히 새로운 것이므로 어리석은 뭔가를 놓친 것 같습니다. 사전에

감사합니다,

-Ferdy

답변

1

다른 래퍼 클래스를 생성

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

다음은

string data = "[" + Request.Form["layers"] + "]"; 
JavaScriptSerializer ser = new JavaScriptSerializer(); 
wrapperOfLaag p = ser.Deserialize<wrapperOfLaag >(data); 
시도
관련 문제