当我使用Json.net时,我总是会遇到这样的问题:
List<Person> persons = JsonConvert.DeserializeObject<List<Person>>(personsJson);
Run Code Online (Sandbox Code Playgroud)
你们知道:有些时候因为服务器错误或任何其他问题,返回json字符串只是一个空值.
但当personsJson为空值时.Json.net将抛出:System.ArgumentNullException
我只需要它自动给我一个新的源对象,我的意思是当personsJson为null时,jut gime me back:new List of Person() ; 这将更有帮助,我不需要在逐一描述之前确定每个json字符串.
我以为可能有一些设置可以做到这一点,但没有找到.
那么为什么不检查null呢?
List<Person> persons = personsJson != null
? JsonConvert.DeserializeObject<List<Person>>(personsJson)
: new List<Person>();
Run Code Online (Sandbox Code Playgroud)
如果你有太多这样的代码,你可以概括它:
public static T Deserialize<T>(this string json) where T : new()
{
return json != null
? JsonConvert.DeserializeObject<T>(json)
: new T();
}
List<Person> persons = personsJson.Deserialize<List<Person>>();
Run Code Online (Sandbox Code Playgroud)