我正在使用 Brian Rogers 提供的示例代码如何使用 JSON.NET 反序列化为嵌套/递归字典和列表?将下载的 JSON 文件转换为字典列表(因为我知道它是什么格式),然后将列表中字典的值作为文本返回:
public static class JsonHelper
{
public static object Deserialize(string json)
{
return ToObject(JToken.Parse(json));
}
private static object ToObject(JToken token)
{
switch (token.Type)
{
case JTokenType.Object:
return token.Children<JProperty>()
.ToDictionary(prop => prop.Name,
prop => ToObject(prop.Value));
case JTokenType.Array:
return token.Select(ToObject).ToList();
default:
return ((JValue)token).Value;
}
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
string wordType = "verb";
var url = "http://api.wordnik.com:80/v4/word.json/" + txtBox.Text + "/definitions?limit=5&partOfSpeech=" + wordType + "&api_key=aaaa946871985c2eb2004061aba0695e00190753d6560ebea";
var jsontext = new WebClient().DownloadString(url);
object worddata = JsonHelper.Deserialize(jsontext);
txtBlock.Text = worddata[0];
}
}
主要关注的是一个worddata变量。它是某种对象,但不是字典列表。如果有任何帮助,我尝试打印worddata到控制台并显示System.Collections.Generic.List'1[System.Object].
本质上,我正在尝试执行该json.load函数在 python 中所做的事情。
月关宝盒
相关分类