2011-08-31 62 views
1

我想要一些JSON反序列化到它完美的對象..幾乎...JSON嵌套歸類,家長參考

我使用NewtonSoft.Json LIB在C#

我有一個嵌套類的系列。

例如:

class car (string prop, string prop2} 

車類中嵌套類輪

class wheel {string prop, car Parent} 

現在我想從車輪類車的引用(父)類 的DeserializeObject作品不錯,是反序列化所有對象和嵌套對象

Car c = JsonConvert.DeserializeObject<Car>(jsonString); 

但似乎不可能得到一個參考父類:(?

回答

0

而不是序列化和反序列化Car對象。 在你的場景中,你實際上可以序列化和反序列化Wheel對象。這樣做,你將擁有汽車和車輪的信息。

嘗試反序列化Json to Wheel對象。

+0

它只給我車輪對象:(例如,我有車輪對象並且想要訪問父類的屬性(Car)Wheel.Parent.Prop2 – jesuisbonbon

+0

可以提供一個車輪對象的樣本json字符串嗎? – humblelistener

+0

[ \t \t { 「ID」: 「12345」, \t \t 「姓名」: 「姓名」, \t \t 「描述」:「這是一個樣本。「 \t \t 」日期「: 」2011-08-29「, \t \t 」開頭「:空, \t \t 」端「:空, \t \t \t 」車輪「:[ \t \t \t {」 ID 「:」 4e5b55c3d2c6842cc600003a」, \t \t \t 「名稱」: 「車輪的名稱」, \t \t \t \t 「項」:[{\t 「ID」: 「4e5b55c3d2c6842cc600003b」, \t \t \t \t \t \t \t 「名稱」: 「開放」, \t \t \t \t \t \t \t 「道具」:[] – jesuisbonbon

1

固定!

{ 
    "$id":"1", 
    "id":"car1", 
    "name":"test", 
    "description":"nice car", 
    "wheel":[ 
     { 
      "car":{"$ref":"1"}, 
      "name":"section", 
      "description":"nice car" 
     } 
    ] 
} 

只是在JSON添加$ref

0

您可以設置兩端此屬性(客戶端/服務器)和Json.net應該反序列化期間回鏈接在一起的樹:

JsonSerializerSettings settings = new JsonSerializerSettings { 
    PreserveReferencesHandling = PreserveReferencesHandling.All 
}; 

您可以將這些設置傳遞給JsonConvert.SerializeObject的每個呼叫,或者您可以使用以下全局設置:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.All;