反序列化不断变化的JSON对象名称在C#
问题描述:
端点我从请求:反序列化不断变化的JSON对象名称在C#
如果你看一下JSON里面的页面对象还有另外一个对象,它是维基百科文章的ID。在我的项目中,我不会仅仅解析Eminem的页面,而是解析其他歌手/艺术家。所以我的问题是我怎么去解析这个不断变化的json对象名称?
我为C#类JSON
public class ArticleRootobject {
public string batchcomplete { get; set; }
public Query query { get; set; }
}
public class Query {
public Normalized[] normalized { get; set; }
public Pages pages { get; set; }
}
public class Pages {
public _4429395 _4429395 { get; set; }
}
public class Normalized{
public string from { get; set; }
public string to { get; set; }
}
感谢您的帮助
答
取决于你所使用的库为deserialisation,你可以在查询页面申报财产作为Dictionary<string,[contentObject]>
。你将需要为contentObject的相关属性(pageId,ns,title等)创建一个类。
http://www.newtonsoft.com/json/help/html/DeserializeDictionary.htm
+0
我正在使用Json.net,并且我会尝试一下 – CaptainVader2
答
你可以定义你的Query
pages
财产Dictionary<string, Page>
和定义一个类Page
:
public class Query
{
public Normalized[] normalized { get; set; }
public Dictionary<string, Page> pages { get; set; }
}
public class Page
{
public int pageid { get; set; }
public int ns { get; set; }
public string title { get; set; }
public string extract { get; set; }
}
使用字典'pages'如图[创建从一个强类型的C#对象(ID为json对象名称)(https://stackoverflow.com/q/34213566/3744182)。 – dbc