我的代碼是這樣的:缺少JSON字段導致崩潰?
using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
{
string resultString = streamReader1.ReadToEnd();
var ser = new DataContractJsonSerializer(typeof(RootObject));
var stream = new MemoryStream(Encoding.Unicode.GetBytes(resultString));
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(RootObject));
RootObject myBook = (RootObject)jsonSerializer.ReadObject(stream);
Deployment.Current.Dispatcher.BeginInvoke(() => Shops.ItemsSource = myBook.SearchResponse.Spell.Results); }
public class Query
{
public string SearchTerms { get; set; }
}
public class Result
{ [DataMember(IsRequired=false)]
public string Value { get; set; }
}
public class Spell
{
[DataMember(IsRequired = false)]
public int Total { get; set; }
[DataMember(IsRequired = false)]
public List<Result> Results { get; set; }
}
public class SearchResponse
{
public bool IsRequired { get; set; }
public string Version { get; set; }
public Query Query { get; set; }
public Spell Spell { get; set; }
}
public class RootObject
{
public SearchResponse SearchResponse { get; set; }
}
IF JSON數據存在
{"SearchResponse":{"Version":"2.0","Query":{"SearchTerms":"mispell"},"Spell":{"Total":1,"Results":[{"Value":"misspell"}]}}}
IF JSON數據不存在
{"SearchResponse":{"Version":"2.0","Query":{"SearchTerms":"mispel"}}}
的事情是,如果兵沒有檢測到錯誤的詞,它崩潰,並給我一個錯誤,如NullReferenceException。我試圖做一個IF語句來看看這個流如果它的值是空白的,但似乎不起作用。
任何想法?
不幸的是,不解決它,仍然給我「NullReferenceException」。 – user1239234 2012-03-02 23:34:15
你可以發佈你的RootObject類和json數據嗎? – argh 2012-03-07 11:12:26
我已經添加了JSON和RootObject。 – user1239234 2012-03-08 02:25:38