2013-03-03 6 views
0

내가 js의 값을 얻으려고 주어,하지만 난 받고 있어요 :디코딩 JSON 예외

유형의 첫 번째 예외를 'System.InvalidOperationException' 는 System.Web.Extensions.dll 발생

추가 정보 : 배열의 역 직렬화에 'System.String'유형이 지원되지 않습니다.

해결 방법?

string a = "{\"payload\":{\"js\":[\"abc\"]}}"; 
    JavaScriptSerializer ser = new JavaScriptSerializer(); 
       JSONData j = ser.Deserialize<JSONData>(a); 
       Console.WriteLine(j.payload.js.ToString()); 

    public class JSONData 
    { 
     public payload payload { get; set; } 
    } 
    public class payload 
    { 
     public string js { get; set; } 
    } 

답변

1

귀하의 JSON :

{ "payload": { "js": ["abc"] } } 

멤버 js는 문자열 배열의 문자열이 아니다.

public class payload 
{ 
    public string[] js { get; set; } 
} 
: 당신의 JSON에 맞게

{ "payload": { "js": "abc" } } 

... 또는 클래스 구조를 수정 : 어느 클래스 구조를 일치하도록 JSON을 수정