JToken.ToObject一次又一次地给出相同的值

时间:2014-09-10 16:33:49

标签: c# json.net

我有以下方法..

public void Handle(JToken jsonTable)
    {
        var myvar = jsonTable.ToObject<abcTable>();
        // other code
    }

abcTable结构:

public class abcTable
    {
        public string Column1
        {
            get;
            set;
        }
       public string Column2
        {
            get;
            set;
        }
        public bool Column3
        {
            get;
            set;
        }

}

当我调用Handle方法时 - jsontable有Column1 =“a”而Column2 =“b”且Column3不存在.....

经过.ToObject()后,myvar得到Column3 = false以及其他两个值

在对象形成后我需要Column3 = null ..

真心感谢任何帮助

由于

1 个答案:

答案 0 :(得分:1)

如评论中所述,bool不能设置为null。您创建为bool类型的任何变量都将自动设置为false而不是null。要创建可以设置为null的布尔值,请使用可空类型bool?

public bool? Column3
{
    get;
    set;
}

现在您可以像往常一样设置Column3:

Column3 = true;

获取价值有点琐碎:

if (Column3.HasValue) // Check if Column3 is not null
{
    boo value = Column3.Value;
    // process the value here
}