C# 使用随机生成的值检索JSON值
我有一个JSON文件,看起来像这样。它基本上是一个JSON文件,使用Wikipedia的API直接从Wikipedia获取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
{
"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);