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 
}