Tag: deserialization json.net system.version

为什么JSON字符串中的System.Version没有正确反序列化?

上下文:我需要传递一个包含大量属性/字段的对象(从中间层到UI层)。 在这个属性列表中,一个是Version类型,它没有从JSON字符串格式正确反序列化。 我在XML上选择了JSON格式,因为字符串的JSON序列化将返回短字符串结果。 问题:System.Version没有正确反序列化。 我尝试了两种不同的.NET库。 以下是每个代码段: 使用ServiceStack .NET库的代码片段1: var version = new Version(1, 2, 3, 0); string reportJSON = JsonSerializer.SerializeToString(version); //{“Major”:1,”Minor”:2,”Build”:3,”Revision”:0,”MajorRevision”:0,”MinorRevision”:0} Version report2 = JsonSerializer.DeserializeFromString(reportJSON); string reportJSON2 = JsonSerializer.SerializeToString(report2); //{“Major”:0,”Minor”:0,”Build”:-1,”Revision”:-1,”MajorRevision”:-1,”MinorRevision”:-1} Code Snippet 2使用Newtonsoft .NET库但结果相同: var version = new Version(1, 2, 3, 0); string reportJSON = JsonConvert.SerializeObject(version); //{“Major”:1,”Minor”:2,”Build”:3,”Revision”:0,”MajorRevision”:0,”MinorRevision”:0} Version report2 = JsonConvert.DeserializeObject(reportJSON); string reportJSON2 = JsonConvert.SerializeObject(report2); […]