【发布时间】:2015-07-12 15:12:50
【问题描述】:
我的应用程序使用配置来管理游戏的模组包,因此配置加载器是这样工作的:
这是configurations.json:
{
"GameDirectory": "C:\\Users\\username\\AppData\\Roaming\\.mp-craft-project",
"Configurations": {
"MP-Craft-Default": {
"Name": "MP-Craft-Default",
"JavaPath": "C:\\ProgramFiles\\Java\\jre-xxx\\bin\\javaw.exe",
"FullScreenMode": "Enabled",
"ModLoader": "MCF_1.0"
},
"New-Configuration": {
"Name": "New-Configuration",
"JavaPath": "C:\\ProgramFiles\\Java\\jre-xxx\\bin\\javaw.exe",
"FullScreenMode": "Enabled",
"ModLoader": "MCF_2.0"
}
}
}
并且此 json 中的字符串(例如 modloader 或 fullscreenmode)可以是相同或不同(未知)的变体。 我想按名称加载所有配置,并加载所选配置的设置。有人可以帮我吗,我该如何反序列化这个json。
我正在使用Newtonsoft.Json 进行反序列化。
感谢帮助。
【问题讨论】:
-
您要反序列化哪个?在名称中允许空格可能会导致问题:“Example Config”不会匹配“Example_Config”
-
您是从其他地方得到这些还是这些是您的发明?我问是因为将它们组合起来似乎比尝试从 A 中的文本中找到 B 更容易
-
所以我需要做的是:加载配置,然后加载所选配置的设置。
-
好吧,与其将实际配置保存在不同的 json 中,不如将名称保存在 A 中,保存实际配置...像这样:pastebin.com/87WC5z2s 你所拥有的有些问题 -该字符串数组包含 2 条信息 - 0、2、4... 是“名称”,1、3、5 将是文件名 - 难以管理。此外,如果这只是您的本地存储并且您没有将它们发送到任何地方,那么 XML 序列化器会更合适
-
JSON 更适合数据交换,如果是本地存储,XML 序列化会更好。无论哪种方式,编辑您的问题以获得您想要的答案
标签: .net json vb.net serialization token