gpt4 book ai didi

c# - 启用/禁用指定的 [JsonProperty] 名称

转载 作者:太空狗 更新时间:2023-10-29 23:06:29 25 4
gpt4 key购买 nike

有没有办法以编程方式启用/禁用 [JsonProperty] 指定的属性名称的使用?

当我序列化时:

public class Dto
{
[JsonProperty("l")]
public string LooooooooooooongName { get; set; }
}

我希望能够看到“调试中”的输出:

{
"LooooooooooooongName":"Data"
}

和“发布中”:

{
"l":"Data"
}

最佳答案

只需创建一个解析器来处理这项工作。

public class NoJsonPropertyNameContractResolver : DefaultContractResolver
{

protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{

JsonProperty property = base.CreateProperty(member, memberSerialization);
property.PropertyName = property.UnderlyingName;
return property;
}
}

在你的启动代码中的某处

#if DEBUG
JsonConvert.DefaultSettings = () => new JsonSerializerSettings()
{
ContractResolver = new NoJsonPropertyNameContractResolver()
};
#endif

现在您的 Debug 和 Release 构建之间存在不一致的行为(但为什么呢?)。

关于c# - 启用/禁用指定的 [JsonProperty] 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com