如何提高枚举JSON文件的可读性



我使用JSON文件保存游戏的设置数据。数据中有一些enum类型(Unity项目c#(。现在在JSON文件中,我使用integer来表示JSON文件中的enum值。

这会导致2个问题。1,手动编辑JSON文件很痛苦,因为我记不清所有的enum值,我必须回到cs文件来查看哪个枚举意味着什么。(使用enum的目的首先是提高可读性(2,例如,当我更改枚举类时,在其他旧枚举值之前插入新值,那么整个JSON文件将是错误的。

有什么技巧可以解决这个问题吗?谢谢

首先,除非有充分的理由,否则总是在枚举的末尾添加新的枚举常量。否则,您需要迁移数据/设置以匹配新订单。这应该是解决的一个问题。

现在,您还没有指定要使用哪个工具对JSON进行序列化/反序列化,所以我给您举一个使用JSON的示例。NET。此解决方案是序列化枚举常量的文本表示,而不是整数值。希望这就是你想要的。

public enum GameDifficulty
{
Easy,
Normal,
Difficult,
Insane
}
public class PlayerSettings
{
public int ID { get; set; }
public string Name { get; set; }
// Should convert between the enum value and a string representation in JSON
[JsonConverter(typeof(StringEnumConverter))]
public GameDifficulty Difficulty { get; set; }
}
// Somewhere in your code...
var settings = new PlayerSettings
{
ID = 1,
Name = "Bob",
Difficulty = GameDifficulty.Difficult
};
var json = JsonConvert.SerializeObject(settings);
Console.WriteLine(json);
// Prints:
// {
//   "ID": 1,
//   "Name": "Bob",
//   "Difficulty": "Difficult"
// }

看到它在行动

最新更新