我需要以下输出
{hello =“world”,test = aobjectname}
我尝试在c#和enum{aobjectname}
[JsonConverter(typeof(StringEnumConverter))]
其他任何人都知道如何获得想要的输出。我试过的东西给出test = 1或test =“aobjectname”。
答案 0 :(得分:2)
这不是有效的JSON。 JSON 中的字符串值用引号括起来。所以test:"aobjectname"
是正确的输出,世界上没有JSON序列化器会在没有这些引号的情况下为你提供任何输出。
JSON是一种语言。语言有规格。和JSON language specification状态一样,JSON对象遵循这种结构:
它还指出,字符串值遵循此结构:
如果你违反了这些原则,那么你不再拥有JSON,而是你自己制作的东西,这是基于的在JSON上。在极少数情况下,这可能是好的。但是你需要知道你正在做出的牺牲:这是你自己设计的一种语言,所以你需要提供围绕该语言的所有工具,包括但不限于:序列化器和反序列化器,MIME类型,验证器,等
简而言之,您的对象应如下所示:
{hello: "world", test: "aobjectname"}
或
{hello: "world", test: 1}
顺便说一句,如果您需要将"aobjectname"
转换回枚举值,可以使用Enum.Parse
方法执行此操作。