[英]JSON to C# Classes - Unknown property names
假设我有以下JSON有效负载;
{
"pagemap": {
"metatags": [
{
"msapplication-task": "name\u003dAbout Tugberk Ugurlu;action-uri\u003d/about;icon-uri\u003d/content/App_Icons/icos/about.ico",
"msapplication-task": "name\u003dContact;action-uri\u003d/contact;icon-uri\u003d/content/App_Icons/icos/contact.ico",
"msapplication-task": "name\u003dBlog RSS Feed;action-uri\u003dhttp://feeds.feedburner.com/TugberkUgurlu;icon-uri\u003d/content/App_Icons/icos/rss.ico",
"msapplication-task": "name\u003dTugberk on Twitter;action-uri\u003dhttp://twitter.com/tourismgeek;icon-uri\u003d/content/App_Icons/icos/twitter.ico",
"msapplication-starturl": "./",
"application-name": "Tugberk's Blog",
"msapplication-tooltip": "bla bla bla..."
}
]
}
}
元标记下的属性名称是动态的。 我的意思是其中一个是针对此请求的msapplication-starturl
,但对于另一个请求可能是msapplication-foo
。
那么这种JSON有效载荷的最佳c#类是什么?
编辑
这是谷歌搜索API提供的JSON格式的一部分。 我也在使用Json.NET。 除了动态还有其他方式吗?
我可能只是希望将MetaTags数组推入Dictionary<string,string>
或甚至只是List<string>
,然后编写一个帮助程序类,将msapplication-task
值解析为你想要的东西。
编辑:我相信OP正在寻找他的模型类实际如何的一些帮助
public class PageMap
{
public Dictionary<string,string> MetaTags {get;set; }
}
通过查看该json对象,似乎RestSharp应该能够将其反序列化为此类。
调用代码类似于
var client = new RestClient("somegoogle.com");
var request = new RestRequest("Some/Foo/Bar", Method.GET)
{ RequestFormat = DataFormat.Json };
request.AddParameter("p1", "quigybo");
client.Execute<PageMan>(request)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.