我有一个json格式的维基百科api。现在我想从这个api获取提取信息。我想让任何维基百科api都充满活力。 [我的wikipedia api] [1]。我从jsontoCsharp获得了以下信息
namespace Json_deserialize
{
public class pageval
{
public int pageid { get; set; }
public int ns { get; set; }
public string title { get; set; }
public string extract { get; set; }
}
public class Query
{
public Dictionary<string, pageval> pages { get; set; }
}
public class Limits
{
public int extracts { get; set; }
}
public class RootObject
{
public string batchcomplete { get; set; }
public Query query { get; set; }
public Limits limits { get; set; }
}
class Short_text
{
public static RichTextBox txt1 = new RichTextBox();
public static void shortText()
{
using (WebClient wc = new WebClient())
{
var client = new WebClient();
var response = client.DownloadString("https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exlimit=max&explaintext&exintro&titles=Neuschwanstein%20Castle&redirects="); ;
pageval m = JsonConvert.DeserializeObject<pageval>(response);
string result = m.extract;
txt1.Text = result;
}
}
}
}
我想制作一个应该是动态的编码。这意味着id 240912应该及时变化。我尝试了很多。但无法得到满意的结果。
答案 0 :(得分:2)
所有JSON对象本质上都是字典。但是,假设模式是常量,通常将它们表示为C#中的类通常是有意义的。对于属性名称并不总是相同的情况,编写表示对象的类是不可能的;所以你大量使用动态或字典
var post_id
获取摘录:
public class pageval
{
public int pageid { get; set; }
public int ns { get; set; }
public string title { get; set; }
public string extract { get; set; }
}
public class Query
{
public Dictionary<string, pageval> pages { get; set; }
}
public class Limits
{
public int extracts { get; set; }
}
public class RootObject
{
public string batchcomplete { get; set; }
public Query query { get; set; }
public Limits limits { get; set; }
}