序列化/反序列化复杂的 Dictionary<ClassA><ClassB> by Newtonsoft JSON 在反序列化时给我错误

问题描述

我的 JSON 看起来像:

[
  {
    "Key": {
      "PatientName": "Hans Gerd","Alter": 81,"Geschlecht": "M","Zimmernummer": 1,"PatientenLiegeplatz": 0,"IsDummyData": false
    },"Value": {
      "Puls": 0,"Temperatur": 0.0,"Systole": 0,"Diastole": 0,"DictationText": "","Timestamp": "2021.05.24 12:31:06"
    }
  }
]

序列化:

string json = JsonConvert.SerializeObject(saveObj.CareRoutineDataDictionary.ToArray(),Formatting.Indented);

如何反序列化它?我已经尝试了很多,但它不起作用。 常见错误信息:

解析值时遇到意外字符

如果我尝试这样做:

Dictionary<BasicPatientData,CareRoutineData> data = JsonConvert.DeserializeObject<Dictionary<BasicPatientData,CareRoutineData>>(File.ReadAllText(SaveFilePath));

我收到一个错误

JsonSerializationException:无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'System.Collections.Generic.Dictionary`2[BasicPatientData,CareRoutineData]' 因为该类型需要一个 JSON 对象(例如 {"name":"value"})来 正确反序列化。要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为 实现集合接口的数组或类型(例如 ICollection,IList) 像可以从 JSON 反序列化的 List 大批。也可以将 JsonArrayAttribute 添加到类型中以强制它 从 JSON 数组反序列化。

有人可以帮忙吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)