You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何显示JSON反序列化后的字典或字典元素?

解决方案

你当前输出Createfile.QAcast是因为Console.WriteLine默认调用对象的ToString()方法,而自定义的QAcast类没有重写这个方法,所以输出的是类的完全限定名称。要输出JSON格式内容或者字典元素,有两种简单方法:

方法1:将对象重新序列化为JSON字符串输出

直接把反序列化后的QAcast对象再转成JSON格式的字符串,就能得到你想要的输出:

修改Main方法中的输出代码:

static void Main(string[] args)
{
    string filename = "./Database.json";
    string fileread = File.ReadAllText(filename);
    QAcast QAlist = JsonSerializer.Deserialize<QAcast>(fileread);
    
    // 序列化为带缩进的JSON字符串,方便阅读
    string jsonOutput = JsonSerializer.Serialize(QAlist, new JsonSerializerOptions { WriteIndented = true });
    Console.WriteLine(jsonOutput);
}

运行后会输出格式化后的JSON:

{
  "QAlist": {
    "1+1": "2",
    "2+2": "4"
  }
}

如果想要紧凑的一行格式,去掉JsonSerializerOptions参数即可:

string jsonOutput = JsonSerializer.Serialize(QAlist);

方法2:遍历字典显示键值对

如果只是想单独展示每个问题和答案,直接遍历QAlist字典即可(注意加空检查避免报错):

static void Main(string[] args)
{
    string filename = "./Database.json";
    string fileread = File.ReadAllText(filename);
    QAcast QAlist = JsonSerializer.Deserialize<QAcast>(fileread);
    
    if (QAlist.QAlist != null)
    {
        foreach (var item in QAlist.QAlist)
        {
            Console.WriteLine($"问题:{item.Key},答案:{item.Value}");
        }
    }
}

运行后输出:

问题:1+1,答案:2
问题:2+2,答案:4

内容的提问来源于stack exchange,提问作者austihh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:59:54