假设我有以下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..."
}
]
}
}
mettags下的属性名称是动态的。我的意思是,对于此请求,其中一个是msapplication-starturl
,但对于另一个请求可能是msapplication-foo
。
那么这种JSON有效载荷的最佳c#类是什么?
修改
这是谷歌搜索API提供的JSON格式的一部分。我也在使用Json.NET。还有其他方式而不是动态吗?
答案 0 :(得分:2)
我可能只是希望将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)
答案 1 :(得分:2)