我正在使用 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 中所做的事情。
2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
您正在打印一个对象列表,因此输出是正常的。如果您想要 Json 表示,请再次将其转换为 Json
txtBloct.Text = JsonConvert.SerializeObject(worddata[0])
或者,如果要将列表打印为字符串,请遍历它并打印对象
- 2 回答
- 0 关注
- 254 浏览
添加回答
举报
0/150
提交
取消