用户代码未处理Newtonsoft.Json.JsonSerializationException

时间:2013-09-03 09:57:06

标签: c# asp.net json serialization

我在这里缺少什么?为什么我会得到这个例外?用户代码未处理Newtonsoft.Json.JsonSerializationException,错误转换值“[{”username“:”someone“,”computername“:”computer1“,”PID“:”1234“}]”键入'System.Collections。 Generic.List`1 [WebApplication4.PInfo]”。路径'',第1行,第95位。

代码如下,非常简单的类,非常简单的内容,但是一个讨厌的错误=(

public class PInfo
{
    public string username { get; set; }
    public string computername { get; set; }
    public string PID { get; set; }
}

string s = "\"[{\\\"username\\\":\\\"someone\\\",\\\"computername\\\":\\\"computer1\\\",\\\"PID\\\":\\\"1234\\\"}]\"";
var z = JsonConvert.DeserializeObject<List<PInfo>>(s);

2 个答案:

答案 0 :(得分:3)

我认为你的Json字符串有错误,反斜杠可能不正确。

如果你试试这个Json字符串

[{"username":"test","computername":"test","PID":"test"}]

您可以使用以下程序自行制作,然后一切正常:

private static void test()
    {
        PInfo p = new PInfo();
        p.username = "test";
        p.computername = "test";
        p.PID = "test";
        List<PInfo> testlist = new List<PInfo>();
        testlist.Add(p);
        string json = JsonConvert.SerializeObject(testlist);

        var z = JsonConvert.DeserializeObject<List<PInfo>>(json);
    }

答案 1 :(得分:1)

这不是一个有效的json字符串,请尝试:

string s = "[{\"username\":\"someone\",\"computername\":\"computer1\",\"PID\":\"1234\"}]";