相关疑难解决方法(0)

将枚举序列化为从 Azure 函数返回的 JSON 中的字符串

有没有办法配置 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

该函数返回:-

{
   "Sauce": 1
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它返回下面?

{
   "Sauce": "Hot"
}
Run Code Online (Sandbox Code Playgroud)

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

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

c# json azure json.net azure-functions

5
推荐指数
1
解决办法
1781
查看次数

标签 统计

azure ×1

azure-functions ×1

c# ×1

json ×1

json.net ×1