C# 从Web API反序列化JSON
我有一个json格式的wikipedia api。我想做一个动态编码,在这个编码中,id号将在时间上偶然出现。我想从api中提取信息,以显示网页的简短描述。我从jsonTocSharp中稍微修改了json数据。但是在删除url之后,我没有得到任何输出。这是我的代码示例C# 从Web API反序列化JSON,c#,json,deserialization,wikipedia,C#,Json,Deserialization,Wikipedia,我有一个json格式的wikipedia api。我想做一个动态编码,在这个编码中,id号将在时间上偶然出现。我想从api中提取信息,以显示网页的简短描述。我从jsonTocSharp中稍微修改了json数据。但是在删除url之后,我没有得到任何输出。这是我的代码示例 namespace Json_deserialize { public class pageval { public int pageid { get; set; } public int ns { get;
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;
}
}
}
名称空间Json\u反序列化
{
公共类pageval
{
public int pageid{get;set;}
公共整数ns{get;set;}
公共字符串标题{get;set;}
公共字符串提取{get;set;}
}
公共类查询
{
公共字典页{get;set;}
}
公共类限制
{
公共int提取{get;set;}
}
公共类根对象
{
公共字符串batchcomplete{get;set;}
公共查询查询{get;set;}
公共限制限制{get;set;}
}
类短文本
{
public static RichTextBox txt1=新的RichTextBox();
公共静态void shortText()
{
使用(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(响应);
字符串结果=m.extract;
txt1.Text=结果;
}
}
}
而不是
pageval m = JsonConvert.DeserializeObject<pageval>(response);
pageval m=JsonConvert.DeserializeObject(响应);
使用
rootobjectm=JsonConvert.DeserializeObject(响应);
您是否收到任何错误或异常?页面
不能是符合Json的字典键和值如何。我的代码显示了键和值的错误。它显示-error“Json\u deserialize.Query”不包含“Keys”的定义,并且没有扩展方法“Keys”接受类型为“Json\u deseriali”的第一个参数找不到“ze.Query”,另一个错误是:当前@Anik 1991中不存在名称“values”。这是java版本,您可以为C执行此操作#
RootObject m = JsonConvert.DeserializeObject<RootObject>(response);