【问题标题】:JSON StringEnumConverter Not WorkingJSON StringEnumConverter 不工作
【发布时间】:2023-03-17 17:00:02
【问题描述】:

我有一个类包含一个枚举属性,并使用 newtonsoft.json serilaizer 我正在序列化它的一个实例。 我希望序列化这个属性的输出是属性的字符串值,所以我使用了 StringEnumConverter 但是输出是这样的

** 没有转换器: “FailOrPassProperty”:1

** 带转换器: "FailOrPassProperty":"1"

所以使用转换器似乎得到了整数的 ToString()

我已经尝试过这个解决方案,但没有奏效: JSON serialization of enum as string

注意:由于业务规则,我不能使用属性修饰。

【问题讨论】:

    标签: c# json enums


    【解决方案1】:

    看看这个:

    [TestClass]
    public class JsonStringTest
    {
        [TestMethod]
        public void EnumToStringSerializationTest()
        {
            var testMe = new TestMe()
            {
                UserType = UserType.User,
            };
            var settings = new JsonSerializerSettings();
            settings.Converters.Add(new StringEnumConverter());
            var jsonString = JsonConvert.SerializeObject(testMe, settings);
            Assert.AreEqual(jsonString, "{\"UserType\":\"User\"}");
        }
    }
    
    
    
    public class TestMe
    {
        public UserType UserType { get; set; }
    }
    
    
    
    public enum UserType
    {
        Admin = 1,
        User = 2
    }
    

    更新:

    只是想添加此注释: 确保您的枚举项没有 EnumMember 属性,因为 StringEnumConverter 将使用此值而不是枚举项名称。

    for more information

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 2015-03-27
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      相关资源
      最近更新 更多