gpt4 book ai didi

c# - 在类属性上使用 JsonConverter 时选择 NamingStrategy

转载 作者:行者123 更新时间:2023-12-03 17:50:22 24 4
gpt4 key购买 nike

我有一个 c# 类,我正在尝试使用 Newtonsoft.Json 正确序列化它.该属性是一个枚举类型,我希望该值被序列化为“枚举名称的小写版本”。有一个JsonConverterAttribute可用于在属性上指定此项以及预先编写的 StringEnumConverter但我需要指定 CamelCaseNamingStrategy 在那个转换器上,但我无法计算出语法。

我试图将它分配给属性本身:

public class C
{
[JsonConverter(typeof(StringEnumConverter),NamingStrategy=typeof(CamelCaseNamingStrategy))]
public ChartType ChartType { get; set; }
}

我也尝试将它类似地添加到枚举类型本身:
[JsonConverter(typeof(StringEnumConverter),NamingStrategy=typeof(CamelCaseNamingStrategy))]
public enum ChartType { Pie, Bar }

但是语法是错误的。我在 Newtonsoft documentation 中找不到任何此类示例.

所需的序列化将是: "ChartType":"pie""ChartType":"bar"
有任何想法吗?谢谢。

最佳答案

好的,这似乎有效:

[JsonProperty("type")] 
[JsonConverter(typeof(StringEnumConverter),
converterParameters:typeof(CamelCaseNamingStrategy))]
public ChartType ChartType { get; }

NamingStrategy StringEnumConverter 的属性它是使用 converterParameters 应用的范围。这得到了我想要的输出。我认为这个例子在 Newtonsoft 文档中会很有用。

关于c# - 在类属性上使用 JsonConverter 时选择 NamingStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54484708/

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