Я новичок в C# и ASP. NET. У меня есть контроллер API с этим методом действий:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
namespace Mautic.Webhook
{
[ApiController]
[Route("mautic/[controller]")]
public class WebhookController : ControllerBase
{
public WebhookController(ILogger<WebhookController> logger)
{
Logger = logger;
}
[HttpPost]
public ActionResult WebhookAction(WebhookRequest data)
{
Logger.LogInformation(ObjectDumper.Dump(data.LeadPostDelete));
return NoContent();
}
private ILogger<WebhookController> Logger { get; }
}
}
И есть это определение WebhookRequest
:
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Mautic
{
public class ContactWebhookRequest
{
public int id { get; set; }
public string timestamp { get; set; }
}
public class WebhookRequest
{
[JsonProperty(PropertyName = "mautic.lead_post_delete")]
public List<ContactWebhookRequest> LeadPostDelete { get; set; }
public string timestamp { get; set; }
}
}
Когда я получаю данные в контроллере, я хочу, чтобы он десериализовался в мой класс, но у меня есть null для свойства LeadPostDelete
. Понимает ли ASP. NET атрибут Newtonsoft JsonProperty
? Или мне нужно перенести его на System.Text.Json
?
Также достаточно перехода на System.Text.Json
, иначе мне нужно будет десериализовать это вручную на моем контроллере?