我知道這種類型的問題以前已經被問過很多次了,但我真的想不通。我從控制器發送這個對象:
OperationResult<bool>()
{
IsSuccess = true,
Result = default,
Error = null
};
我在前端收到這個 json 字符串:
'{"result":false,"error":null,"isSuccess":true}'
我嘗試像這樣反序列化它:
var result = JsonConvert.DeserializeObject<OperationResult<R>>(jsonstring);
這是我試圖將 json 反序列化為的對像類型:
public class OperationResult<R>
{
public OperationResult()
{
}
public R Result { get; set; }
public string Error { get; set; }
public bool IsSuccess { get; set; }
}
在反序列化我得到這個例外:
錯誤將值 False 轉換為類型 OperationResult`1[System.Boolean]
這是內部異常:
無法從 System.Boolean 強制轉換或轉換為 OperationResult`1[System.Boolean]。
奇怪的是,只有當 R 是布爾類型時,我才會收到這個錯誤。
老實說,除了將類型從布爾值更改為另一種類型以查看序列化是否有效之外,我還沒有嘗試過任何其他方法。我不知道還能做什麼。
我在 VS 中測試了你的代碼,一切正常,沒問題
static void Main()
{
var json="{\"result\":false,\"error\":null,\"isSucces\":true}";
var result = JsonConvert.DeserializeObject<OperationResult<bool>>(json);
json = JsonConvert.SerializeObject(result, Newtonsoft.Json.Formatting.Indented);
}
結果
{
"Result": false,
"Error": null,
"IsSuccess": false
}
班級
public class OperationResult<T>
{
public T Result { get; set; }
public string Error { get; set; }
public bool IsSuccess { get; set; }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句