为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 json 解析为列表中的字典,然后打印为文本

如何将 json 解析为列表中的字典,然后打印为文本

C#
牧羊人nacy 2021-10-09 10:30:09
我正在使用 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])

或者,如果要将列表打印为字符串,请遍历它并打印对象


查看完整回答
反对 回复 2021-10-09
  • 2 回答
  • 0 关注
  • 254 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信