我尝试将json反序列化为对象并获取错误 .

Newtonsoft.Json.JsonReaderException:解析值时遇到意外的字符:A . 路径'',第0行,位置0. Newtonsoft.Json.JsonTextReader.ParseValue()вNewtonsoft.Json.JsonTextReader.Read()вNewtonsoft.Json .Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader,JsonContract contract,Boolean hasConverter)Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader,Type objectType,Boolean checkAdditionalContent)Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader,Type objectType) )Newtonsoft.Json.JsonConvert.DeserializeObject(String value,Type type,JsonSerializerSettings settings)Newtonsoft.Json.JsonConvert.DeserializeObject [T](String value,JsonSerializerSettings settings)

json="{\"Email\":\"ui new user111715154920@email.com\",\"UserName\":\"ui new user111715154920\",\"PasswordQuestion\":\"Question ui new user111715154920\",\"IsAdmin\":false,\"Source\":0,\"MustResetPassword\":false,\"CellPhoneNo\":\"\",\"CellPhoneNo2\":\"\",\"CellPhoneNo3\":\"\",\"PagerNo\":\"\",\"PagerNo2\":\"\",\"NotifyBySMS\":false,\"NotifyByEmail\":false,\"NotifyByPopup\":false,\"NotifyByPush\":false,\"AllowPersonalDashboard\":false,\"AllowUnlimitedDashboardItems\":false,\"CanHaveUnlimitedAlerts\":false,\"StayLoggedIn\":false,\"IsActive\":false,\"AccountTypeID\":1,\"Groups\":{\"Items\":[{\"_id\":31,\"_name\":\"HCS Users\"}],\"NewItems\":[],\"RemovedItems\":[],\"TrackChanges\":false},\"CreatedBy\":0,\"CreatedOn\":\"0001-01-01T00:00:00\",\"ModifiedBy\":0,\"ModifiedOn\":\"0001-01-01T00:00:00\",\"ID\":85,\"Name\":\"ui new user111715154920\"}"

类别:

[JsonObject(MemberSerialization.OptIn)]
public class GERLinkListOfUserGroup
{
    private List<NameIDItem> newItems;
    private List<NameIDItem> removedItems;
    private bool trackChanges;
    private List<NameIDItem> items;

    [JsonProperty]
    public List<NameIDItem> NewItems
    {
        get
        {
            if (null == newItems)
            {
                newItems = new List<NameIDItem>();
            }

            return newItems;
        }
        set { newItems = value; }
    }
    [JsonProperty]
    public List<NameIDItem> RemovedItems
    {
        get
        {
            if (null == removedItems)
            {
                removedItems = new List<NameIDItem>();
            }

            return removedItems;
        }
        set { removedItems = value; }
    }
    [JsonProperty]
    public bool TrackChanges
    {
        get
        {
            if (null == trackChanges)
            {
                trackChanges = false;
            }
            return trackChanges;
        }
        set { trackChanges = value; }
    }
    [JsonProperty]
    public List<NameIDItem> Items
    {
        get
        {
            if (null == items)
            {
                items = new List<NameIDItem>();
            }

            return items;
        }
        set { items = value; }
    }
}

[JsonObject(MemberSerialization.OptIn)]
public class NameIDItem
{
    private string name;
    private int id;
    [JsonProperty]
    public string _name
    {
        get
        {
            if (String.IsNullOrEmpty(name))
            {
                name = "";
            }
            return name;
        }
        set { name = value; }
    }
    [JsonProperty]
    public int _id
    {
        get
        {
            if (null == id)
            {
                id = 0;
            }
            return id;
        }
        set { id = value; }
    }

    public NameIDItem(){}

    public NameIDItem(string name, int id)
    {
        _name = name;
        _id = id;
    }
}


[JsonObject]
public class UserResponseJson
{
    [JsonProperty]
    public string Email { get; set; }

    [JsonProperty]
    public string Email2 { get; set; }

    [JsonProperty]
    public string Email3 { get; set; }

    [JsonProperty]
    public string UserName { get; set; }

    [JsonProperty]
    public string PasswordQuestion { get; set; }

    [JsonProperty]
    public string PasswordAnswer { get; set; }

    [JsonProperty]
    public bool IsAdmin { get; set; }

    [JsonProperty]
    public bool MustResetPassword { get; set; }

    [JsonProperty]
    public string CellPhoneNo { get; set; }

    [JsonProperty]
    public string CellPhoneNo2 { get; set; }

    [JsonProperty]
    public string CellPhoneNo3 { get; set; }

    [JsonProperty]
    public string PagerNo { get; set; }

    [JsonProperty]
    public string PagerNo2 { get; set; }

    [JsonProperty]
    public bool NotifyBySMS { get; set; }

    [JsonProperty]
    public bool NotifyByEmail { get; set; }

    [JsonProperty]
    public bool NotifyByPopup { get; set; }

    [JsonProperty]
    public bool NotifyByPush { get; set; }

    [JsonProperty]
    public bool AllowPersonalDashboard { get; set; }

    [JsonProperty]
    public bool AllowUnlimitedDashboardItems { get; set; }

    [JsonProperty]
    public bool CanHaveUnlimitedAlerts { get; set; }

    [JsonProperty]
    public bool StayLoggedIn { get; set; }

    [JsonProperty]
    public bool IsActive { get; set; }

    [JsonProperty]
    public int AccountTypeID { get; set; }

    [JsonProperty]
    public GERLinkListOfUserGroup Groups { get; set; }

    [JsonProperty]
    public int CreatedBy { get; set; }

    [JsonProperty]
    public string CreatedOn { get; set; }

    [JsonProperty]
    public int ModifiedBy { get; set; }

    [JsonProperty]
    public string ModifiedOn { get; set; }

    [JsonProperty]
    public int ID { get; set; }

    [JsonProperty]
    public string Name { get; set; }
}

UserResponseJson responsedUser = JsonConvert.DeserializeObject(json);