我有一个代码,访问Api
链接并检索该值Json
并将它们存储在object list
。然而,当没有东西可以检索时(链接到Api不存在),它什么都不返回。c#Api Json反序列化时,404,值是错误的
但即使Api链接错误,它仍然返回Json值。这些是他们的默认值,即使没有与请求的ID相匹配的东西,它们也会始终存在。
下面的链接将显示值将始终返回无论什么
这里是我打电话给API
var spidyApi_idByName_result = api_Handler.objFromApi_nameToId(spidyApi_searchIdByName);
这里的API访问Json被反序列化。
public RootObject objFromApi_nameToId(string url){
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
try{
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream()){
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
var jsonReader = new JsonTextReader(reader);
var serializer = new JsonSerializer();
return serializer.Deserialize<RootObject>(jsonReader);
}
}
catch (WebException){
throw;
// used throw as otherwise i can not run code, function requires every path to return
// Catch never gets called
}
}
RootObject类
public RootObject GetApi(string url)
{
// ...
return serializer.Deserialize<RootObject>(jsonReader);
}
我怎么去走一走,忽略了他们的 “默认” 的JSON值?什么都不做。
您的RootObject是否有一个名为count的属性? – 2015-04-03 21:12:52
是的,它的确如此。 'public int count {get;组; }' – 2015-04-03 21:15:44
不正确API的预期系统行为是什么?你期待它从你的objFromApi_nameToId方法返回一个空对象吗? – 2015-04-03 21:16:50