JSON.Net CamelCasePropertyNamesContractResolver在更新版本后返回不同的JSON

JSON.Net CamelCasePropertyNamesContractResolver在更新版本后返回不同的JSON

问题描述:

我一直在MVC项目中使用JSON.net和CamelCasePropertyNamesContractResolver来返回JSON。 我一直在使用JSON.net 4.5了一会儿,将其升级到版本9后返回JSON格式不同JSON.Net CamelCasePropertyNamesContractResolver在更新版本后返回不同的JSON

例如: 在4.5的属性调用ALResults将返回作为aLResults INT 9相同的属性会作为alResults

我可以给每个类添加属性,并强制JSON为我需要的格式,但有没有更好的方法来做到这一点?

+2

Newtonsoft故意改变其ToCamelCase()的逻辑,如[CamelCase转换格式从6.0更改为9.0#1427](https://github.com/JamesNK/Newtonsoft.Json/issues/1427)中所述。 。正如JamesNK在那里解释的,*您可以通过继承DefaultContractResolver来获取旧行为,并使用ToCamelCaseV6方法重写解析属性名称的方法。然后使用新的DefaultContractResolver而不是CamelCaseContractResolver。*。 – dbc

+1

这个修改可能是[8.0.3](https://github.com/JamesNK/Newtonsoft.Json/releases/tag/8.0.3):*修复 - 修正了一些属性名称到骆驼案件*。 – dbc

+0

非常感谢你们。 – Bazzzzzzz

感谢所有的评论。 终于结束了更新版本,并在模型类中使用JsonProperty
例如:

[JsonProperty("aLResults")] 
public string ALResults{ get; set; } 
所有JSON回报


将来,决定在JSON返回中使用所有简单操作。