2014-09-10 70 views
0

我有以下方法..JToken.ToObject连连给予相同的值

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; 
     } 

} 

当我调用句柄method-- jsontable具有column1的= “一”并且Column2 =“b”和Column3不存在.....

经过.ToObject()后,myvar与其他两个值一起获取Column3 = false

我需要栏3 = null被形成在物体后..

任何帮助真诚理解

由于

+2

'Column3'不能为空,因为'bool'是一种值类型。你可以让它成为'布尔型',但即使这样,你的问题也不是很清楚。你能举一个你正在处理的JSON和预期输出的例子吗? – 2014-09-10 16:35:47

+0

@AndrewWhitaker谢谢,布尔?解决了这个问题... – Arnab 2014-09-10 16:43:27

回答

1

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

public bool? Column3 
{ 
    get; 
    set; 
} 

现在你可以设置栏3就像你通常会做:

Column3 = true; 

获取价值是一个比较简单的:

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