如何将此 JSON 反序列化为对象列表

本文关键字:对象 列表 反序列化 JSON | 更新日期: 2023-09-27 18:31:13

我得到了这个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)都在变化。我应该使用什么结构将其反序列化为产品类型DTO列表?感谢

如何将此 JSON 反序列化为对象列表

正如 Anton 在他的评论中指出的那样,您应该首先反序列化为Dictionary<string, ProductTypeDTO>

代码(使用 JSON.NET):

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