相关疑难解决方法(0)

通用类型JsonConvert.DeserializeObject <List <T >>(string)

我正在使用Newtonsoft.JSON。我不知道传递给此方法或检索到该方法DeserializeObject的对象的类型,因此我试图在不知道其类型的对象上使用。

这可能吗?如果是这样,怎么办?这是我的代码。

public static List<T> GetObject<T>(string cacheKey, IEnumerable<T> obj)
{
    using (HttpClient client = new HttpClient())
    {
        var response = client.GetAsync("http://localhost:53805/api/NonPersisted/Get/" + cacheKey).Result;

        obj = JsonConvert.DeserializeObject<obj.GetType>(response.Content.ToString());
        return obj.ToList();
    }            
}
Run Code Online (Sandbox Code Playgroud)

我首先尝试使用

obj = JsonConvert.DeserializeObject<List<T>>(response.Content.ToString());

显然,这是行不通的,它无法解析。它说,获取对象的类型不会建立obj is a variable but used like a type

编辑 看来您可以在List<T>不知道类型的情况下使用泛型JsonConvert.DeserializeObject<>。真正的错误是,response.Content该类仅返回该类型。你需要...

obj = JsonConvert.DeserializeObject<List<T>>(response.Content.ReadAsStringAsync().Result);
Run Code Online (Sandbox Code Playgroud)

c# generics serialization json.net

6
推荐指数
1
解决办法
6794
查看次数

标签 统计

c# ×1

generics ×1

json.net ×1

serialization ×1