c# - 从 JSON 循环长值并在 C# 中写入控制台
问题描述
我在名为“Config.json”的文件中有一个类似这样结构的 JSON 文件:
{
"name": "Michael",
"ids": [111111, 222222, 333333, 444444, 555555]
}
我像这样反序列化它:
Config config = JsonConvert.DeserializeObject<Config>(File.ReadAllText("Config.json"));
我有一个像这样的配置类:
class Config
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("ids")]
public long Ids{ get; set; }
}
如何遍历 id 并将它们写入控制台?我试过这个:
var ids = new List<long> { config.Ids};
foreach (long id in ids)
{
Console.WriteLine(id.ToString());
}
但我收到一个错误:
无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“System.Int64”,因为该类型需要 JSON 原始值(例如字符串、数字、布尔值、null)才能正确反序列化
我无法弄清楚如何反序列化和编写它...我尝试过尝试不同的值(uint64),但发生了同样的错误。
非常感谢!
解决方案
您ids
在 Json 中的属性是一个数组(如方括号所示)。要正确反序列化此 Json,您的模型类应如下所示
public class Config
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("ids")]
public IEnumerable<long> Ids { get; set; }
}
然后,如果您想将所有值写入控制台
foreach (var id in config.Ids)
{
Console.WriteLine(id);
}
推荐阅读
- html - 向页面添加更多部分后,CSS 动画变慢/未完成
- python - 如何在 python 中为在 tensorflow 中实现的模型创建混淆矩阵?
- c - 带有布尔的分段错误 - CS50 多个
- perl - 一个 perl 脚本许多“终端”(tmux 窗格)
- javascript - 如何用普通数字替换大写数字?
- python - 如何在python列表中用空格替换逗号
- python - Python pandas - 检测 numpy.ndarray 列并将其转换为列表列
- python - Scipy.optimize 最小化函数行为异常
- javascript - 如何在我的笑话测试中从剪贴板获取复制的文本?
- flutter - 使用键在两个页面上重用小部件