【发布时间】:2021-03-04 15:50:10
【问题描述】:
我是 JSON.Net 和 JSON 的新手——我正在尝试从文件中反序列化一个数组。我不断收到错误“无法将 JSON 对象反序列化为数组”,因为它显然格式不正确。但是,我将 JSON 复制到一个字符串中并在 C# 类中使用它,一切正常。当我回到从文件中获取它时,与以前相同的错误。不知道是什么问题!
类内 JSON 字符串:
string json = @"[{
'id': 1,
'name': '...',
'image': '...',
'attack': 12,
'defense': 3,
'magic': 4,
'speed': 2,
'hp': 20
},
{
'id': 2,
'name': '...',
'image': '...',
'attack': 3,
'defense': 14,
'magic': 9,
'speed': 7,
'hp': 14
},
{
'id': 3,
'name': '...',
'image': '...',
'attack': 3,
'defense': 14,
'magic': 9,
'speed': 7,
'hp': 14
}
]";
monsters = JsonConvert.DeserializeObject<List<Monster>>(json);
还有文件:
[
{
'id': 1,
'name': '...',
'image': '...',
'attack': 12,
'defense': 3,
'magic': 4,
'speed': 2,
'hp': 20
},
{
'id': 2,
'name': '...',
'image': '...',
'attack': 15,
'defense': 5,
'magic': 3,
'speed': 4,
'hp': 17
}
]
monsters = JsonConvert.DeserializeObject<List<Monster>>(File.ReadAllText(@"Content\Data\monsterData.json"));
monsters 被定义为上面的列表。
我做错了什么?感谢您的帮助!
【问题讨论】:
-
该文件包含的对象比类内字符串少,只是因为我正在测试其他内容
-
帮我一个忙,将 json 保留在字符串中,但也以相同的方式从文件中读取。使用 string.Equals 比较字符串。它们/实际上/一样吗?
-
尝试将 JSON 文件中的单引号替换为双引号,尝试任何在线 JSON 验证器,我使用这个 JSONFormatter
-
格式化程序说双引号没问题,但我仍然遇到同样的错误
-
好吧,所以即使我已经从字符串复制到文件,它说字符串是不同的所以必须弄清楚...
标签: c# json .net json.net monogame