为什么Azure函数不支持System.Text.Json
,而每个人都在示例中使用newtonsoft?
是否可以在Azure函数中使用System.Text.Json?
public static class FanyFunctionName
{
[FunctionName("FanyFunctionName")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]
HttpRequest req,
ILogger log)
{
try
{
// Read the request body and deserialize it
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var eventObject = JsonConvert.DeserializeObject<Event>(requestBody);
// Log the event type and other necessary information in one log statement
return new OkResult();
}
catch (Exception ex)
{
log.LogError(ex, "Error processing event");
return new BadRequestObjectResult("Error processing event");
}
}
}
字符串
2条答案
按热度按时间pdtvr36n1#
是的,
System.Text.Json
可以在Azure函数和WebJobs中使用,没有任何问题。kmbjn2e32#
正如我已经在评论中提到的,这并不是说
system.json.Text
不支持,而是Azure函数默认使用Newtonsoft.Json
。当我们创建Function App时,默认情况下,
requestBody
从Newtonsoft.Json
生成JsonConvert.DeserializeObject
代码。Newtonsoft.Json
编码:*字符串
当我们使用
System.Text.Json
时,JsonConvert
在函数中是不允许的,的数据
我尝试了
JsonSerializer.Deserialize<JsonElement>
,得到了下面的错误。的
我已经修改了代码如下,现在我能够访问的功能.
System.Text.Json
:*型