2014-09-22 44 views
0

我反序列化JSON作爲:如何檢查是否JEnumerable列表爲空

var tokens = new JEnumerable<JToken>(); 

    var eventJson = JObject.Parse(json).SelectToken("someJsonXpath", false); 

    if(eventJson != null) 
     tokens = eventJson.Children(); 

的問題是,當eventJson爲null,令牌對象變空。我試圖檢查令牌是否爲空。

我已經試過

tokens == null 
Object.Equals(tokens,null) 
tokens.Equals(null) 

他們返回tokens.Count()返回空引用異常。有沒有什麼好的方法來檢查?

+1

「tokens.Count()返回空引用異常」---這很奇怪。但嘗試'tokens.Any()'這是用來檢查空集合。 – Habib 2014-09-22 13:16:02

+0

你爲什麼不驗證這個? O.o – felipekm 2014-09-22 13:17:09

+0

@Habib是一樣的。 tokens.Any()也會引發null引用。 – Sefa 2014-09-22 13:17:23

回答

2

更改從tokens變量的初始化:

var tokens = new JEnumerable<JToken>(); 

var tokens = JEnumerable<JToken>.Empty; 

在此之後,Any()Count()擴展方法不會拋出異常。