c# - 使用 JSON.net 动态反序列化

标签 c# json json.net

我有一个透明代理,用于调整前台和后台之间的请求,我的透明代理有 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/

相关文章:

json - list 不是有效的 JSON。行 : 1, 列 : 1, 意外 token

c# - 为什么 WP8 应用程序中的 JsonConvert.DeserializeObject 可以工作,而 WP8 ScheduledTask 却不能

c# - 使用 Json.Net 序列化对象会导致内存不足异常

c# - 如何停止应用程序?

c# - 在 C# 中转义字符串文字中的双引号

c# - 启用/禁用任务管理器

c# - 显示 Html 字符串

java - 使用 GSON 反序列化泛型类型

ios - 如何在 Swift/iOS 中解析 Json 并获取所需的值?

c# - Json.NET 反序列化对象返回 null