私がこのようなクラスを持っている場合:
[DataContract(Name = "", Namespace = "")]
public class MyDataObject
{
[DataMember(Name = "NeverNull")]
public IList<int> MyInts { get; set; }
}
次の文字列が逆シリアル化されたときに、MyIntsフィールドをnull以外の空のリストにする方法はありますか?
string serialized = @"{""NeverNull"":null}";
MyDataObject myDataObject = JsonConvert.DeserializeObject<MyDataObject>(serialized);
Newtonsoft.Jsonを使用しています
私が尋ねる理由は、解析するかなり複雑なjsonリクエストがあり、オブジェクトのリストのネストが含まれているためです。逆シリアル化コードでこれらのオブジェクトを作成して、多くのnullチェックを回避できるようにします。
if (foo.bar != null)
{
foreach (var bar in foo.bar)
{
if (bar.baz != null)
{
foreach (var baz in bar.baz)
{
...