我有一个看起来像这样的
JSON文件.它基本上是一个使用他们的API直接从维基百科采取的JSON文件.
{ "batchcomplete": "","query": { "pages": { "31329803": { "pageid": 31329803,"ns": 0,"title": "Wiki Title","extract": "<p><b>Your Wiki Title</b></p>" } } } }
在“pages”(即pageID)下生成的数字是随机的.我正在尝试检索“提取”值,但我似乎无法得到它.
我正在使用Visual Studio&使用NewtonSoft JSON.net进行解析.我已经创建了一个用于检索我想要的数据的类,它看起来像这样.
public class WikiPage { public string title { get; set; } public int pageid { get; set; } public int ns { get; set; } public string extract { get; set; } }
我试图绕过JSON树&得到我想要的价值.我用来获取值的代码如下:
static void Main(string[] args) { // Getting JSON string from file string JSONString = File.ReadAllText("wiki.json"); JObject wikiSearchResult = JObject.Parse(JSONString); IList<JToken> wikiPages = wikiSearchResult["query"]["pages"].Children().ToList(); JToken result = wikiPages[0]; var wp = JsonConvert.DeserializeObject<WikiPage>(result.ToString()); // Writing data Console.WriteLine(wp.extract); Console.ReadLine(); }
An unhandled exception of type
‘Newtonsoft.Json.JsonSerializationException’ occurred in
Newtonsoft.Json.dllAdditional @R_407_4045@ion: Error converting value “31329803” to type
‘JSON_test.WikiPage’. Path ”,line 1,position 10.
我尝试了很多东西,但没有运气.也许有一种更简单的方法可以做到这一点,但我现在几乎陷入困境,有人可以帮助我吗?
解决方法
你差不多完成了,只需这样得到结果:
JToken result = wikiPages[0].Children().First();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。