【发布时间】:2021-03-18 03:38:11
【问题描述】:
假设一个应用程序的序列化程序设置为CamelCasePropertyNamesContractResolver,而我有一个模型:
public class Model
{
public int Id { get; set; }
[JsonProperty(Name = "content_text")]
public string Text { get; set; }
}
我想找到一种方法来获取序列化程序在序列化时为每个属性生成的结果名称,以便以下内容为真:
string JsonName<T>(string cSharpPropertyName)
{
//
}
JsonName<Model>(nameof(Model.Id)) == "id";
JsonName<Model>(nameof(Model.Text)) == "content_text";
我正在为自定义类型编写自定义反序列化器(JSON 转换器),我想将我的 Model 属性与 JSON 输入匹配,但不区分大小写,但使用当前的序列化器策略。
我的想法是将包含在新 JSON 对象中的每个传入 JToken 反序列化为 c#object 并检查结果属性名称,但它似乎效率不高。有没有更好的方法来做到这一点?
【问题讨论】: