2013-03-03 56 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不是字符串,它是一个字符串数组。要么修改您的JSON,以配合您的阶级结构:

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

...或修改你的类结构,以满足您的JSON:

public class payload 
{ 
    public string[] js { get; set; } 
}