枚举序列化为不带引号的字符串

时间:2019-07-19 08:26:17

标签: c# serialization jsonconvert

我想使用JSON.NET将枚举序列化为字符串,但我希望Enum的值序列化而没有字符串引号

    [JsonConverter(typeof(StringEnumConverter))]
    enum Gender { Male, Female }

    class Test
    {
        public Gender { get; set; }
    }

现在我得到的输出为{ "Gender": "Male" }

{ "Gender": Male }  //Male is without quotes

2 个答案:

答案 0 :(得分:2)

这是不可能的,因为json将无效。您可以检查https://jsonlint.com上有效json的样子。

所有JSON转换库都遵循有效的json结构,您始终可以编写自己的json转换器来执行此操作,但我完全不建议这样做。

答案 1 :(得分:0)

这是不可能的(并且实际上不建议这样做),因为它不遵守JSON语法。

请参阅:[{https://www.w3schools.com/js/js_json_syntax.asp][1]

在JSON中,值必须是以下数据类型之一:

一个字符串 一个号码 一个对象(JSON对象) 数组 一个布尔值 空