Azure Functions 2 - How to control json serialization settings










1















I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:



[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)

try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);

catch(ErrorException)
return new BadRequestObjectResult(e.Error);




Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.










share|improve this question
























  • Have you tried JsonResult with JsonSerializerSettings?

    – Jerry Liu
    Nov 13 '18 at 5:28











  • JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.

    – Mark W
    Nov 13 '18 at 8:42











  • There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298

    – Sebastian Achatz
    Nov 13 '18 at 10:42












  • Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .

    – Mark W
    Nov 13 '18 at 10:54











  • After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.

    – Mark W
    Nov 13 '18 at 14:30















1















I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:



[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)

try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);

catch(ErrorException)
return new BadRequestObjectResult(e.Error);




Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.










share|improve this question
























  • Have you tried JsonResult with JsonSerializerSettings?

    – Jerry Liu
    Nov 13 '18 at 5:28











  • JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.

    – Mark W
    Nov 13 '18 at 8:42











  • There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298

    – Sebastian Achatz
    Nov 13 '18 at 10:42












  • Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .

    – Mark W
    Nov 13 '18 at 10:54











  • After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.

    – Mark W
    Nov 13 '18 at 14:30













1












1








1








I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:



[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)

try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);

catch(ErrorException)
return new BadRequestObjectResult(e.Error);




Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.










share|improve this question
















I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:



[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)

try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);

catch(ErrorException)
return new BadRequestObjectResult(e.Error);




Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.







azure json.net azure-functions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 7:59







Mark W

















asked Nov 12 '18 at 15:06









Mark WMark W

325314




325314












  • Have you tried JsonResult with JsonSerializerSettings?

    – Jerry Liu
    Nov 13 '18 at 5:28











  • JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.

    – Mark W
    Nov 13 '18 at 8:42











  • There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298

    – Sebastian Achatz
    Nov 13 '18 at 10:42












  • Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .

    – Mark W
    Nov 13 '18 at 10:54











  • After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.

    – Mark W
    Nov 13 '18 at 14:30

















  • Have you tried JsonResult with JsonSerializerSettings?

    – Jerry Liu
    Nov 13 '18 at 5:28











  • JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.

    – Mark W
    Nov 13 '18 at 8:42











  • There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298

    – Sebastian Achatz
    Nov 13 '18 at 10:42












  • Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .

    – Mark W
    Nov 13 '18 at 10:54











  • After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.

    – Mark W
    Nov 13 '18 at 14:30
















Have you tried JsonResult with JsonSerializerSettings?

– Jerry Liu
Nov 13 '18 at 5:28





Have you tried JsonResult with JsonSerializerSettings?

– Jerry Liu
Nov 13 '18 at 5:28













JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.

– Mark W
Nov 13 '18 at 8:42





JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.

– Mark W
Nov 13 '18 at 8:42













There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298

– Sebastian Achatz
Nov 13 '18 at 10:42






There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298

– Sebastian Achatz
Nov 13 '18 at 10:42














Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .

– Mark W
Nov 13 '18 at 10:54





Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .

– Mark W
Nov 13 '18 at 10:54













After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.

– Mark W
Nov 13 '18 at 14:30





After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.

– Mark W
Nov 13 '18 at 14:30












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53264940%2fazure-functions-2-how-to-control-json-serialization-settings%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53264940%2fazure-functions-2-how-to-control-json-serialization-settings%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Crossroads (UK TV series)

ữḛḳṊẴ ẋ,Ẩṙ,ỹḛẪẠứụỿṞṦ,Ṉẍừ,ứ Ị,Ḵ,ṏ ṇỪḎḰṰọửḊ ṾḨḮữẑỶṑỗḮṣṉẃ Ữẩụ,ṓ,ḹẕḪḫỞṿḭ ỒṱṨẁṋṜ ḅẈ ṉ ứṀḱṑỒḵ,ḏ,ḊḖỹẊ Ẻḷổ,ṥ ẔḲẪụḣể Ṱ ḭỏựẶ Ồ Ṩ,ẂḿṡḾồ ỗṗṡịṞẤḵṽẃ ṸḒẄẘ,ủẞẵṦṟầṓế