大佬教程收集整理的这篇文章主要介绍了使用JSon.NET对动态数据进行反序列化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是JSON网址的示例:
http://en.wikipedia.org/w/api.php?action=query&format=json&pageids=6695&prop=info
得到的JSON是:
{ "query" : { "pages" : { "6695" : { "counter" : "","lastrevid" : 468683764,"length" : 8899,"ns" : 0,"pagEID" : 6695,"title" : "Citadel","touched" : "2012-01-03T19:16:16Z" } } } }
好的,除非我不能将“页面”数据反序列化成一个对象,那很好。如果我要为这个页面定义一个类,那么它必须如下所示:
public class 6695 { public String counter { get; set; } public int lastrevid { get; set; } public int length { get; set; } public int ns { get; set; } public int pagEID { get; set; } public String title { get; set; } public String touched { get; set; } }
为了反序列化内容(使用JsonConvert.Deserialize(jsondata)),我们都知道我们不能有一个叫做6695的类。不仅如此,类的名称必须是不同的(例如pagEID = 7145会必须是7145课)。
如果我使用像JObject.Parse(content)这样的东西,然后访问JArrays的项目,我似乎可以提取一些值,但是它非常丑陋,我仍然坚持尝试从pages数组中获取数据。
寻找一个人来帮助这个。我不认为这是不常见的,它只是我以前遇到的JSON数据,不知道如何处理它。
谢谢!
PS忘了提到这是Windows Phone 7所以“动态”是不可用的!
var text = "{\"query\":{\"pages\":{\"6695\":{\"pagEID\":6695,\"ns\":0,\"title\":\"Citadel\",\"touched\":\"2012-01-03T19:16:16Z\",\"lastrevid\":468683764,\"counter\":\"\",\"length\":8899}}}}";
(使用动态)
dynamic json = SimpleJson.DeserializeObject(text); String title = json.query.pages["6695"].title; foreach (KeyValuePair<String,dynamic> page in json.query.pages) { var id = page.Key; var pagEID = page.Value.pagEID; var ns = page.Value.ns; }
(使用强类型的类)
class result { public query query { get; set; } } class query { public IDictionary<String,page> pages { get; set; } } class page { public long pagEID { get; set; } public String title { get; set; } } var result = SimpleJson.DeserializeObject<result>(text);
[更新]
在Windows手机上,动态不支持,您不想使用强类型的类。
var json = (IDictionary<String,object>)SimpleJson.DeserializeObject(text); var query = (IDictionary<String,object>)json["query"]; var pages = (IDictionary<String,object>)querY["pages"]; var pageKeys = pages.Keys; var page = (IDictionary<String,object>)pages["6695"]; var title = (String)page["title"];
以上是大佬教程为你收集整理的使用JSon.NET对动态数据进行反序列化全部内容,希望文章能够帮你解决使用JSon.NET对动态数据进行反序列化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。