序列化.net枚举作为JSON中的字符串,with JavaScriptSerializer
标准.NETJavaScriptSerializer
通常在JSON中输出枚举作为其整数值。 为了将它们序列化为代表其名称的字符串,存在几种方法。
方法1:利用json.net的StringEnumConverter
>StringEnumConverter
<code class="language-csharp">using Newtonsoft.Json; using Newtonsoft.Json.Converters; [JsonConverter(typeof(StringEnumConverter))] public enum Gender { Male, Female } public class Person { public int Age { get; set; } [JsonConverter(typeof(StringEnumConverter))] // Or apply at property level public Gender Gender { get; set; } }</code>。 该转换器可以在枚举定义级别或属性级别上应用:
Gender
这可以确保
方法2:全局配置选项
>对于更广泛的应用程序,在全球范围内配置StringEnumConverter
>
>:
<code class="language-csharp"> [JsonConverter(typeof(StringEnumConverter))] public enum Gender { Male, Female }</code>
>:> JsonSerializer
将转换器添加到特定的实例中,以仅影响由该实例序列化的枚举:JsonSerializer
<code class="language-csharp"> var serializer = new JsonSerializer(); serializer.Converters.Add(new StringEnumConverter()); // ... use serializer to serialize your objects ...</code>
:> JsonConvert
在序列化过程中直接应用转换器:
<code class="language-csharp"> string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());</code>
StringEnumConverter
的自定义化
构建器提供了进一步的自定义,可以控制命名约定和数字处理。 有关详细的选项,请参阅JSON.NET文档。StringEnumConverter
以上是如何使用JavaScriptSerializer序列化.NET枚举为JSON中的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!