簡體   English   中英

使用 json 反序列化對象返回 InvalidCastException

[英]Deserialize a Object with json returns an InvalidCastException

我有一個對象屬性設置為另一個類的類。 當我序列化它時,一切似乎都很好,json 看起來也不錯。 但是當我想再次嘗試反序列化字符串時,它會出錯。

示例在這里

基於您的異常:未處理的異常。 System.InvalidCastException:無法將“Newtonsoft.Json.Linq.JObject”類型的對象轉換為“SimpleClass”類型。 在 Program.Main()

(SimpleClass)item.Value

在這里,您嘗試將object SimpleClassSimpleClassSimpleClass不可能的。 序列化器將 json 反序列化為類型object和 instance 類型為Newtonsoft.Json.Linq.JObject 您應該將ArgumentBaseV2.Value類型更改為 SimpleClass

class ArgumentBaseV2 
{
    ...
    public SimpleClass Value {get; set;}
}

或者您可以使用泛型類型

class ArgumentBaseV2<T>
{
    ...
    public T Value {get; set;}
}

然后像這樣使用它:

var myClass = new ArgumentBaseV2<SimpleClass>();
...
var deserialised = JsonConvert.DeserializeObject<ArgumentBaseV2<SimpleClass>>(json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM