我有一个像这样的 hjson 文件,我想反序列化并使用它:
{
"TestConfig": {
"SecondConfig": {
"ConnectionString": "Integrated Security = true; Data Source = dataPseudo; Initial Catalog = catalogPseudo; Connect Timeout = 180",
"SpecificationPseudo": "pseudo",
"NumberOfHintsPseudo": 300
},
"ThirdConfig": "pseudo"
}... // more hjson coming here.
我使用 HjsonValue.Load 方法加载它,如下所示:
private static Foo convertJson()
{
var loadedValue = HjsonValue.Load("hjsonFile.hjson").ToString();
return new JsonSerializer<Foo>().DeserializeFromString(loadedValue);
// another failed method: return JsonConvert.DeserializeObject<Foo>(loadedValue);
// A third failed method: return JsonConvert.DeserializeObject<Dictionary<string, Foo>>(loadedValue);
}
我认为我的问题出在 2 个 c# 编码的行中,但不知道是什么。我是在反序列化错误还是似乎是什么问题?我怀疑这是因为它是一个嵌套的 json,但找不到反序列化它的方法。尝试使用字典,因为它是另一个堆栈问题的答案,但它对我不起作用。
注意:第一个和第二个尝试的返回方法不会返回任何错误,但它们只是返回一个 nullreferenceexception,因为“SecondConfig”和“ThirdConfig”都是 null..
更新(在 er-sho 的帮助下):从 hjson (TestConfig)中删除了“根”元素,从而解决了问题。