2016-01-21 108 views
0

我有此JSON味精(不留意編碼):如何將此json反序列化爲對象列表?

{ 
"U1000 R2V": { 
    "carac1": ["Câble d'alimentation rigide rond"], 
    "optionVJ": ["Oui"], 
    "carac4": [""], 
    "carac3": ["Pour alimentation de ligne électrique", "Pour alimentation des moteurs"] 
}, 
"H05 VVF": { 
    "carac1": ["Câble souple rond"], 
    "optionVJ": ["Oui"], 
    "carac4": [""], 
    "carac3": ["Pour câblage des sélecteurs à clé", "Pour alimentation des lampe clignotantes"] 
} 
} 

我與這些對象的嘗試:

public class TypeProductList 
{ 
    public List<ProductTypeDTO> cables { get; set; } 
} 


public class ProductTypeDTO 
{ 
    public string[] carac1; 
    public string[] optionVJ; 
    public string[] carac4; 
    public string[] carac3; 
} 

但是,這並不工作,其實我不不知道該怎麼做,因爲「父元素」(我的意思是U1000 R2V,H05 VVF)正在改變每個對象。 我應該使用什麼結構將其反序列化爲ProductTypeDTO列表? Thx

+2

儘量使用公共詞典<字符串,ProductTypeDTO>電纜{獲得;組; }和反序列化時轉換爲任何類型的對象 –

回答

3

正如Anton在他的評論中指出的那樣,您應該首先反序列化爲Dictionary<string, ProductTypeDTO>

代碼(使用JSON.NET):

var result = JsonConvert.DeserializeObject<Dictionary<string, ProductTypeDTO>>(json); 
var typeProductList = new TypeProductList { cables = result.Values.ToList(); } 
+0

這是完美的工作,thx :) – Lempkin