小编典典

JavaScriptSerializer - 枚举的 JSON 序列化为字符串

all

我有一个包含enum属性的类,并且在使用 序列化对象时JavaScriptSerializer,我的 json
结果包含枚举的整数值而不是它的string“名称”。有没有办法将枚举作为string我的 json 中的 a
而不必创建自定义JavaScriptConverter?也许有一个属性可以用来装饰enum定义或对象属性?

举个例子:

enum Gender { Male, Female }

class Person
{
    int Age { get; set; }
    Gender Gender { get; set; }
}

所需的 JSON 结果:

{ "Age": 35, "Gender": "Male" }

理想情况下寻找内置 .NET 框架类的答案,如果不可能的话(如 Json.net)是受欢迎的。


阅读 157

收藏
2022-02-25

共1个答案

小编典典

不,没有可以使用的特殊属性。JavaScriptSerializer序列化为enums它们的数值而不是它们的字符串表示。您需要使用自定义序列化将
序列化enum为其名称而不是数值。


如果您可以使用 JSON.Net JavaScriptSerializer不是查看OmerBakhari提供的关于此问题的答案:JSON.net
涵盖了此用例(通过属性)以及许多其他未由内置 .net
序列化程序处理的用例。这是一个比较序列化程序的特性和功能的链接[JsonConverter(typeof(StringEnumConverter))]

2022-02-25