加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 21:00:00 所属栏目:百科 来源:网络整理
导读:我有一个看起来像这样的 JSON文件.它基本上是一个使用他们的API直接从维基百科采取的JSON文件. { "batchcomplete": "","query": { "pages": { "31329803": { "pageid": 31329803,"ns": 0,"title": "Wiki Title","extract": "pbYour Wiki Title/b/p" } } }}
我有一个看起来像这样的 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 information: Error converting value “31329803” to type
‘JSON_test.WikiPage’. Path ”,line 1,position 10.

我尝试了很多东西,但没有运气.也许有一种更简单的方法可以做到这一点,但我现在几乎陷入困境,有人可以帮助我吗?

解决方法

你差不多完成了,只需这样得到结果:

JToken result = wikiPages[0].Children().First();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读