.NET - JSON serialization of enum as string我有一个包含enum属性的类,在使用JavaScriptSerializer序列化对象时,我的json结果包含枚举的整数值,而不是它的string名称。有没有一种方法可以在我的JSON中获得作为string的枚举,而不必创建自定义JavaScriptConverter?也许有一个属性可以用来修饰enum定义或对象属性? 举个...
没有你可以使用的特殊属性。JavaScriptSerializer将enums序列化为其数值而不是其字符串表示形式。您需要使用自定义序列化将enum序列化为其名称而不是数值。 编辑:正如 @OmerBakhari 所指出的那样,JSON.net 涵盖了这个用例(通过属性[JsonConverter(typeof(StringEnumConverter))])以及许多其他内部. net 序列化程序无法处...
特性的参数需要一个 JsonConverter 类型,下列示例使用了 Json.NET 内置的 StringEnumConverter: public class Person { [JsonProperty("姓名")] public string Name { get; set; } [JsonProperty("年龄")] public int Age { get; set; } [JsonProperty("性别")] [JsonConverter(typeof(StringEnumConverter)...
那个StringEnumConverter后面的参数true表示使用camelCase来格式化命名,即首字母小写。 当然,如果你希望属性名也小写的化,需要加上额外的序列化属性: 1 2 3 4 5 6 7 8 9 10 11 12 13 ++ using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; …… ++ [DataContract] ...
trueto allow undefined enum values; otherwise,false. Whentrue, if an enum value isn't defined, it will output as a number rather than a string. Applies to .NET 10 og aðrar útgáfur VaraÚtgáfur .NETCore 3.0, Core 3.1, 5, 6, 7, 8 (package-provided), 8, 9 (package-provided...
若要在旧 .NET 版本中支持多态反序列化,请创建一个转换器,如如何编写自定义转换器中的示例。 反序列化字符串枚举值 默认情况下,System.Text.Json 不支持反序列化字符串枚举值,而Newtonsoft.Json则支持。 例如,以下代码会引发JsonException: C# stringjson ="{ \"Text\": \"Hello\", \"Enum\": ...
Urls=newList<string>(); } } /// ///权利级别 /// publicenumPriority:byte { Lowest=0x1, BelowNormal=0x2, Normal=0x4, AboveNormal=0x8, Highest=0x16 } 使用System.Web.Script.Serialization.JavaScriptSerializer类 System.Web.Script.Serialization.JavaScriptSerializer类是.NET类库中自带的一种JSON序 列...
自定义枚举成员名称 从.NET 9 开始,可以使用JsonStringEnumMemberName 属性自定义枚举成员名称。 有关详细信息,请参阅自定义枚举成员名称。 另请参阅 .NET 中的 JSON 序列化和反序列化 - 概述 如何使用库
Assume you want to create hard-code this literal JSON value in a file, as a json object: { "pi": 3.141, "happy": true } There are various options: // Using (raw) string literals and json::parse json ex1 = json::parse(R"( { "pi": 3.141, "happy": true } )"); // Using...
若要在旧 .NET 版本中支持多态反序列化,请创建一个转换器,如如何编写自定义转换器中的示例。 反序列化字符串枚举值 默认情况下,System.Text.Json 不支持反序列化字符串枚举值,而Newtonsoft.Json则支持。 例如,以下代码会引发JsonException: C# stringjson ="{ \"Text\": \"He...