我有一个透明代理,用于调整前台和后台之间的请求,我的透明代理有 4 个方法(GET、POST、PUT、DELETE),可以动态向多个服务发出请求。
我的问题是我无法根据响应反序列化列表或对象。
一个对象:
var client = new WebClient { UseDefaultCredentials = true };
client.Headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8");
var result = JsonConvert.DeserializeObject<Dictionary<String, Object>>(Encoding.UTF8.GetString(client.DownloadData(ConfigurationManager.AppSettings["InternalWebApiUrl"] + "/" + url)));
return Request.CreateResponse(result);
对象列表
var client = new WebClient { UseDefaultCredentials = true };
client.Headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8");
var result = JsonConvert.DeserializeObject<List<Object>>(Encoding.UTF8.GetString(client.DownloadData(ConfigurationManager.AppSettings["InternalWebApiUrl"] + "/" + url)));
return Request.CreateResponse(result);
有没有办法验证响应是一个数组还是一个对象?
最佳答案
试试这个!
var client = new WebClient { UseDefaultCredentials = true };
client.Headers.Add(HttpRequestHeader.ContentType, "application/json; charset=utf-8");
var result = JsonConvert.DeserializeObject<Object>(Encoding.UTF8.GetString(client.DownloadData(ConfigurationManager.AppSettings["InternalWebApiUrl"] + "/" + url)));
return Request.CreateResponse(result);
关于c# - 使用 JSON.net 动态反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31028417/