【发布时间】:2019-03-20 08:53:45
【问题描述】:
我正在尝试创建一个通用函数来使用 Newtonsoft 解析我的 json 结果:
private T ParseResult<T>(string queryResult)
{
Result res = JsonConvert.DeserializeObject<Result>(queryResult);
if (res.Success == 1)
{
try
{
return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(res.data));
}
catch (Exception)
{
return default(T);
}
}
return default(T);
}
如果 Success 或解析有问题,我想返回一个 T 的空对象(当前列出或只是自定义对象)。
我的问题是当前的解决方案返回 null 而不是空对象。我怎样才能实现返回值永远不会为空。
【问题讨论】:
-
也许你应该在这种情况下接受
null。这是区分空数据对象和不存在数据对象的唯一方法,对吧? -
JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(res.data))看起来很老套。也许您可以将Result设为通用(如Result<T>)?
标签: c# json generics xamarin default