Json DeserializeObject错误

时间:2015-03-31 14:36:04

标签: json serialization asp.net-web-api

我在反序列化时遇到此错误

"Could not cast or convert from System.String to MAP.Models.Test"

1)我在一边序列化

Test test = new Test();

string Json = await Task.Factory.StartNew(() => JsonConvert.SerializeObjectAsync(test)).Result;

和json变量看起来像这样:

"[{\"Id\":1,\"Device\":1,\"Script\.......

2)另一方面(silverlight 5应用程序)我正在使用WebResponse response = await request.GetResponseAsync())

获取请求

并且响应json看起来像这样:

"\"{\\\"Id\\\":1,\\\"Device\\\":1,\\\"Script\\...

调用反序列化时出现错误

var des = JsonConvert.DeserializeObject(json, typeof(Test)) as Test;

我的课程:

class Test
{
    [JsonProperty("Device")]
    public int Device { get; set; }

}

任何想法可能是错的,为什么另一方面json看起来不同?

1 个答案:

答案 0 :(得分:0)

尝试以这种方式转换为测试的测试目的:

var des = JsonConvert.DeserializeObject("{\"Id\":322,\"Script\":\"dsom\",\"Device\":21}", typeof(Test)) as Test;

如果有效,很可能你输错了json值