2

我在这里想念什么?为什么我会得到这个异常?用户代码未处理 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);
4

2 回答 2

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);
    }
于 2013-09-03T10:04:10.090 回答
1

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

string s = "[{\"username\":\"someone\",\"computername\":\"computer1\",\"PID\":\"1234\"}]";
于 2013-09-03T10:03:23.093 回答