Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用随机生成的值检索JSON值_C#_Json_Json.net - Fatal编程技术网

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

C# 使用随机生成的值检索JSON值,c#,json,json.net,C#,Json,Json.net,我有一个JSON文件,看起来像这样。它基本上是一个JSON文件,使用Wikipedia的API直接从Wikipedia获取 { "batchcomplete": "", "query": { "pages": { "31329803": { "pageid": 31329803, "ns": 0, "title": "Wiki Title", "ex

我有一个JSON文件,看起来像这样。它基本上是一个JSON文件,使用Wikipedia的API直接从Wikipedia获取

{
    "batchcomplete": "",
    "query": {
        "pages": {
          "31329803": {
            "pageid": 31329803,
            "ns": 0,
            "title": "Wiki Title",
            "extract": "<p><b>Your Wiki Title</b></p>"
          }
        }
    }
}
我试图绕过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();
}
static void Main(字符串[]args)
{
//从文件中获取JSON字符串
字符串JSONString=File.ReadAllText(“wiki.json”);
JObject wikiSearchResult=JObject.Parse(JSONString);
IList wikiPages=wikiSearchResult[“查询”][“页面”].Children().ToList();
JToken结果=维基页面[0];
var wp=JsonConvert.DeserializeObject(result.ToString());
//写入数据
控制台写入线(可湿性粉剂提取);
Console.ReadLine();
}
当我运行程序时,我得到一个错误:

类型的未处理异常 在中发生“Newtonsoft.Json.JsonSerializationException” Newtonsoft.Json.dll

附加信息:将值“31329803”转换为类型时出错 “JSON_test.WikiPage”。路径“”,第1行,位置10


我试过很多东西,但都不走运。也许有一种更简单的方法,但我现在几乎被卡住了,有人能帮我吗?

你快做完了,用这种方法得到结果:

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

不能像那样反序列化键值对。请尝试以下方法:

var json = JObject.Parse(JSONString);
var pages = json["query"]["pages"].ToObject<Dictionary<string, WikiPage>>();

var page = pages.First().Value;
Console.WriteLine(page.extract);
var json=JObject.Parse(JSONString); var pages=json[“查询”][“页面”].ToObject(); var page=pages.First().Value; Console.WriteLine(第页摘录);
Wow,一个包含所有相关信息的问题。独角兽!
var json = JObject.Parse(JSONString);
var pages = json["query"]["pages"].ToObject<Dictionary<string, WikiPage>>();

var page = pages.First().Value;
Console.WriteLine(page.extract);