【发布时间】:2020-02-22 22:54:00
【问题描述】:
我在控制器上有一个方法,它接受一个对象,我需要根据我在 DI 中创建服务的方式来进行不同的反序列化。
方法是bool SetSnmpRequest(Object obj);
然后在控制器中
public IActionResult Set([FromBody]object details)
{
bool setSuccesses = _devicesManager.SetSnmpRequest(details);
if (setSuccesses)
return Ok();
return BadRequest();
}
这是从客户端{"Name":"Power" ,"Value":"MED","ChannelIndex":"1"}传递过来的JSON
我试图反序列化的对象
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'.
【问题讨论】:
标签: c# .net jsonconvert