オブジェクトを取得するコントローラーにメソッドがあり、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'.