微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用随机生成的值检索JSON值

我有一个看起来像这样的 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.dll

Additional @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] 举报,一经查实,本站将立刻删除。

相关推荐