我正在尝试将我的 C# 应用程序从 Newtonsoft.JSON 6 升级到最新版本 (9.0.1)。
我注意到反序列化包含重复元素的对象时行为发生了变化,例如:
{
"name": "test",
"data":
{
"myElem": 1,
"myElem": 2
}
}
当反序列化此类对象时,Json.net 之前抛出了 ArgumentException。现在反序列化成功了,它似乎使用了最后一个重复键的值(因此在上面的示例中为“2”)。
根据我的阅读,关于重复存在一些争论,但 RFC 只建议使用唯一的密钥。
我想保留以前的行为,以便验证我的应用程序收到的数据。有没有办法配置 Json.net 来做到这一点?我尝试查看 JsonSerializerSettings 但没有找到任何符合我需求的内容。
我用来反序列化 JSON 的代码:
JsonSerializer.Create(new JsonSerializerSettings())
.Deserialize<JObject>(new JsonTextReader(new StringReader(rawJson));
or
JsonConvert.DeserializeObject<JObject>(rawJson);
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)