检查json是否真的是T

时间:2018-10-28 11:41:14

标签: c# json json.net

我有两个实现IDownloadable接口的类。我得到包含两个随机类的json列表。我想从该列表中过滤掉所有的T,但是问题是由于该接口,序列化总是“有效”。到目前为止,这是我的代码(细分):

public List<T> GetObjectsFromList<T>(List<string> list)where T:IDownloadable{
    var list = new List<T>();
    foreach(string s in list){
        T t = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(json);
        if(t is T && t != null)
            list.Add(T);
    }
}

有没有办法说序列化总是必须使用json中的所有对象? EG:

Json:

{
"Test":1,
"Bla": 2
}

班级:

class A{
   int Test;
}

class B{
   int Test;
   int Bla;
}

_

//this should not work because we dont use "Bla" from the json
A a = Newtonsoft.Json.JsonConvert.DeserializeObject<A>(json);

//this should work because we use every object from the json
B b = Newtonsoft.Json.JsonConvert.DeserializeObject<B>(json);

PS:切换到其他json序列化程序我没有问题

0 个答案:

没有答案