我的代码是这样的:缺少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