gpt4 book ai didi

c# - 将枚举序列化为从 Azure Function 返回的 JSON 中的字符串

转载 作者:行者123 更新时间:2023-11-30 12:21:31 24 4
gpt4 key购买 nike

有没有办法配置 Azure Functions 如何将对象序列化为 JSON 作为返回值?我想使用字符串而不是整数作为枚举值。

例如,给定以下代码:-

public enum Sauce
{
None,
Hot
}

public class Dish
{
[JsonConverter(typeof(StringEnumConverter))]
public Sauce Sauce;
}

public static class MyFunction
{
[FunctionName("MakeDinner")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
var dish = new Dish() { Sauce = Sauce.Hot };
return req.CreateResponse(HttpStatusCode.OK, dish, "application/json");
}
}

函数返回:-

{
"Sauce": 1
}

如何让它返回以下内容?

{
"Sauce": "Hot"
}

我尝试返回字符串而不是对象,但结果包含 \" 转义符;我想要一个 JSON 结果,而不是 JSON 对象的转义字符串表示形式。

我知道在标准 ASP.NET 中我可以使用配置来设置序列化选项。这在函数中是否可能,或者我应该将所有枚举转换为字符串常量?

最佳答案

这让我困惑了一段时间,但检查 this answer .

基本上,使用 Json.NET 属性 StringEnumConverter

[JsonConverter(typeof(StringEnumConverter))]
public enum Sauce
{
[EnumMember(Value = "none")]
None,
[EnumMember(Value = "hot")]
Hot
}

关于c# - 将枚举序列化为从 Azure Function 返回的 JSON 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com