[英]Serialize enum as string in JSON returned from Azure Function
有沒有辦法配置Azure Functions如何將對象序列化為JSON以獲取返回值? 我想使用字符串而不是int來表示枚舉值。
例如,鑒於此代碼: -
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
我可以使用config來設置序列化選項。 這在函數中是否可行,或者我應該將所有枚舉轉換為字符串常量?
這讓我難以忍受了一段時間,但檢查了這個答案 。
基本上,使用Json.NET屬性StringEnumConverter
。
[JsonConverter(typeof(StringEnumConverter))]
public enum Sauce
{
[EnumMember(Value = "none")]
None,
[EnumMember(Value = "hot")]
Hot
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.