我有一個大的json數據集,需要反序列化。我正在使用Json.net的JsonTextReader
來讀取數據。使用Json.net反序列化派生類而不使用JObject
我的問題是我需要反序列化一些派生類,所以我需要能夠「向前看」定義我的數據類型的特定屬性。在下面的示例中,「type」參數用於確定要反序列化的對象類型。
{
type: "groupData",
groupParam: "groupValue1",
nestedObject:
{
type: "groupData",
groupParam: "groupValue2",
nestedObject:
{
type: "bigData",
arrayData: [ ... ]
}
}
我的派生對象可以是嵌套的嚴重和非常深。將整個數據集加載到內存中是不需要的,因爲它需要很多內存。一旦我回到「bigData」對象,我將處理數據(例如上面示例中的數組),但它不會存儲在內存中(它太大)。
到目前爲止,我所見過的所有解決方案都利用了JObject
來反序列化部分對象。我想避免使用JObject
,因爲它會反覆反序列化層次結構中的每個對象。
我該如何解決我的反序列化問題?
有什麼方法可以提前搜索「type」參數,然後回溯到對象的{字符開始處理?
你能不能用類型字段做掉並在反序列化的類中手動指定類型?提供類型不會一直改變。 –