0

我有一个像这样的 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)中删除了“根”元素,从而解决了问题。

4

1 回答 1

1

从 hjson 中删除“TestConfig”修复了它,因为它是根目录和我正在使用的类。

于 2019-10-22T20:24:06.873 回答