我用C#将一个名为state1
的字典序列化为json,代码如下:
string json = JsonConvert.SerializeObject(state1, Formatting.Indented);
这个字典的值是另一个字典,当我将json文件反序列化回字典时,这些值不会反序列化为字典(我无法将object
转换回Dictionary<string, object>
):
var values = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
如何正确地反序列化JSON?
1条答案
按热度按时间c3frrgcw1#
如果你想恢复原来的形状,你需要在反序列化时使用原来的类型。
如果像您的评论中所显示的那样,它是
object
的字典的字典,那么在反序列化时需要使用以下代码:如果您需要将其视为
Dictionary<string, object>
,同时仍然确保内部字典内容被反序列化为字典(而不是JObject
),则可以通过以下方式对其进行“强制转换”(按照this answer):