У меня есть метод на контроллере, который принимает объект, и мне нужно десериализовать по-разному в зависимости от того, как я создаю службу в DI. Метод bool SetSnmpRequest(Object obj);
Затем в контроллере
public IActionResult Set([FromBody]object details)
{
bool setSuccesses = _devicesManager.SetSnmpRequest(details);
if (setSuccesses)
return Ok();
return BadRequest();
}
Это JSON, переданный от клиента {"Name":"Power" ,"Value":"MED","ChannelIndex":"1"}
И объект, который я пытаюсьдесериализация до
public class SetRequestModel
{
public string Name { get; set; }
public string Value { get; set; }
public int ChannelIndex { get; set; } = 0;
}
десериализация SetRequestModel details = JsonConvert.DeserializeObject<SetRequestModel>((string)obj);
Проблема вообще в том, что JsonConvert.DeserializeObject принимает строку, и я получаю исключение при приведении объекта к строке
System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JObject' to type 'System.String'.