我在控制器上有一个方法,它需要一个对象,并且我需要根据我在 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'.