从C#Enum到函数/对象名的Json序列化
我需要以下输出 {hello=“world”,test=aobjectname} 我尝试过在c#中使用从C#Enum到函数/对象名的Json序列化,c#,json,C#,Json,我需要以下输出 {hello=“world”,test=aobjectname} 我尝试过在c#中使用enum{aobjectname}和[JsonConverter(typeof(StringEnumConverter))] 其他人知道我如何获得想要的输出。我尝试过的东西给出了test=1或test=“aobjectname”。这将是无效的JSON。JSON中的字符串值必须在引号中。所以test:“aobjectname”是正确的输出,世界上没有任何JSON序列化程序会提供没有这些引号的输出
enum{aobjectname}
和[JsonConverter(typeof(StringEnumConverter))]
其他人知道我如何获得想要的输出。我尝试过的东西给出了test=1或test=“aobjectname”。这将是无效的JSON。JSON中的字符串值必须在引号中。所以
test:“aobjectname”
是正确的输出,世界上没有任何JSON序列化程序会提供没有这些引号的输出
JSON是一种语言。语言有规范。并且声明JSON对象遵循以下结构:
它还指出,字符串值遵循以下结构:
如果您违反了这些原则,那么您就不再拥有JSON,而是基于JSON的自己制作的东西。这在极少数情况下是可以接受的。但是您需要知道您正在做出的牺牲:这是一种您自己设计的语言,因此您需要提供该语言的所有工具,包括但不限于:序列化器和反序列化器、MIME类型、验证器等
简而言之,对象应如下所示:
{hello: "world", test: "aobjectname"}
或
顺便说一句,如果需要将“aobjectname”
转换回枚举值,可以使用以下方法执行此操作
{hello: "world", test: 1}