Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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.net转换wikipedia api响应_C#_Json.net_Wikipedia Api - Fatal编程技术网

C# 使用Json.net转换wikipedia api响应

C# 使用Json.net转换wikipedia api响应,c#,json.net,wikipedia-api,C#,Json.net,Wikipedia Api,我正在使用WikipediaAPI查询数据,并希望将结果转换为字符串[] “测试”查询 在此处返回此结果: spellcheck(["test",["Test cricket","Test","Testicle","Testudines","Testosterone","Test pilot","Test (assessment)","Testimonial match","Testimony","Testament (band)"]]) 我可以使用Json.net删除或忽略标记“拼写检查”吗

我正在使用WikipediaAPI查询数据,并希望将结果转换为字符串[]

“测试”查询

在此处返回此结果:

spellcheck(["test",["Test cricket","Test","Testicle","Testudines","Testosterone","Test pilot","Test (assessment)","Testimonial match","Testimony","Testament (band)"]])
我可以使用Json.net删除或忽略标记“拼写检查”吗? 如果使用此代码转换响应,应用程序将崩溃:

Dictionary<string, string[]> dict = JsonConvert.DeserializeObject<Dictionary<string, string[]>>(response); 
Dictionary dict=JsonConvert.DeserializeObject(响应);
维基百科的api(使用JSON)假设您使用的是JSONP。您可以完全从查询字符串中删除回调参数:

en.wikipedia.org/w/api.php?action=opensearch&search=test&format=json

此外,您得到的结果可能无法转换为
词典
。如果仔细观察,它实际上是一个数组,其中第一个对象是字符串(搜索词),第二个是字符串列表(结果)

以下几点对我很有用:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(
    @"http://en.wikipedia.org/w/api.php?action=opensearch&search=test&format=json");

string[] searchResults = null;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    {
        JArray objects = JsonConvert.DeserializeObject<JArray>(reader.ReadToEnd());
        searchResults = objects[1].Select(j => j.Value<string>()).ToArray();
    }
}
HttpWebRequest请求=(HttpWebRequest)HttpWebRequest.Create(
@"http://en.wikipedia.org/w/api.php?action=opensearch&search=test&format=json");
字符串[]searchResults=null;
使用(HttpWebResponse=(HttpWebResponse)request.GetResponse())
{
使用(StreamReader=newstreamreader(response.GetResponseStream())
{
JArray objects=JsonConvert.DeserializeObject(reader.ReadToEnd());
searchResults=objects[1]。选择(j=>j.Value()).ToArray();
}
}
维基百科的api(使用JSON)假设您使用的是JSONP。您可以完全从查询字符串中删除回调参数:

en.wikipedia.org/w/api.php?action=opensearch&search=test&format=json

此外,您得到的结果可能无法转换为
词典
。如果仔细观察,它实际上是一个数组,其中第一个对象是字符串(搜索词),第二个是字符串列表(结果)

以下几点对我很有用:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(
    @"http://en.wikipedia.org/w/api.php?action=opensearch&search=test&format=json");

string[] searchResults = null;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    {
        JArray objects = JsonConvert.DeserializeObject<JArray>(reader.ReadToEnd());
        searchResults = objects[1].Select(j => j.Value<string>()).ToArray();
    }
}
HttpWebRequest请求=(HttpWebRequest)HttpWebRequest.Create(
@"http://en.wikipedia.org/w/api.php?action=opensearch&search=test&format=json");
字符串[]searchResults=null;
使用(HttpWebResponse=(HttpWebResponse)request.GetResponse())
{
使用(StreamReader=newstreamreader(response.GetResponseStream())
{
JArray objects=JsonConvert.DeserializeObject(reader.ReadToEnd());
searchResults=objects[1]。选择(j=>j.Value()).ToArray();
}
}