我想将我的json字符串反序列化为我的泛型类。但我想用一种方法做到这一点。当我打电话给这个链接时;
这是我的代码; 我的班级:
public class Test
{
public string userId { get; set; }
public string Id { get; set; }
}
我的反序列化课程:
private static async Task<IRestResponse<T>> MapResponse<T>(HttpResponseMessage response) where T : class
{
var restResponse = new WebApiRestResponse<T>
{
Content = await response.Content.ReadAsStringAsync(),
StatusCode = response.StatusCode
};
try
{
var body = await response.Content.ReadAsStringAsync();
if (response.Content.Headers.ContentType.MediaType == "text/plain")
restResponse.Exception = new RestInteractionException(body);
else
restResponse.Data = JsonConvert.DeserializeObject<List<T>>(body); ;
}
catch (Exception e)
{
restResponse.Exception = e;
}
return restResponse;
}
public interface IRestResponse
{
string Content { get; }
Exception Exception { get; set; }
HttpStatusCode StatusCode { get; }
}
public interface IRestResponse<T> : IRestResponse
{
List<T> Data { get; }
}
https://jsonplaceholder.typicode.com/posts/1
它返回单个对象。
当我打电话给这个链接时;
https://jsonplaceholder.typicode.com/posts
MapResponse类使反序列化为json到泛型类。但有时我会调用单个对象,有时我会调用list对象。那么我怎么能在这段代码中做到这一点?
祝你好运
答案 0 :(得分:2)
由于您有时可以将列表作为结果,因此如果您需要单个方法,请始终将其作为列表返回。当您有一个对象时,只需创建新列表并添加它。