C#用Dictionary创建Json类

时间:2017-04-12 08:26:19

标签: c# json

我有这个.json文件我想用字典创建一个类。 下面你会发现课程。 我想和字典一起工作。 有谁知道我将如何重建类以及如何读取.json文件?

{
    { "Schlagwortmaskname": "Verpackungstisch"}
      "Schlagwort": [
        {
          "Name": "Fertigungsauftrag",
          "Wert": "4594"
        },
        {
          "Name": "Kundenauftrag",
          "Wert": "Smith"
        },
        {
          "Name": "Produktname",
          "Wert": "Jones "
        },
        {
          "Name": "Artikelnummer",
          "Wert": "Jones "
        },
        {
          "Name": "Seriennummer",
          "Wert": "Jones "
        },
        {
          "Name": "Kunde",
          "Wert": "Jones "
        },
        {
          "Name": "Endkunde",
          "Wert": "Jones "
        },
        {
          "Name": "Musterbild",
          "Wert": "1"
        },
        {
          "Name": "Kommentar",
          "Wert": "Jones "
        },
        {
          "Name": "Repair Artikelnummer",
          "Wert": "Jones "
        },
        {
          "Name": "Erstellt am",
          "Wert": "10.12.2012 15:15:15"
        }
      ]
    }
 public class Informationen
    {
        public string Name { get; set; }
        public string Wert { get; set; }
    }

    public class Rootobject
    {
        public string Schlagwortmaskname { get; set; }        
        public IList<Informationen> Informationen { get; set; }
    }

1 个答案:

答案 0 :(得分:1)

你可以达到你想要的结果:

static void Main(string[] args)
{
    var values = JsonConvert.DeserializeObject<RootObject>(json);
    var dictionary = values.Schlagwort.ToDictionary(x => x.Name, y => y.Wert);
}

public class Informationen
{
    public string Name { get; set; }
    public string Wert { get; set; }
}

public class RootObject
{
    public string Schlagwortmaskname { get; set; }
    public IList<Informationen> Schlagwort { get; set; }
}

请注意,正如Jon Skeet指出的那样,您将无法再次序列化回JSON。我没有真正看到在模型上使用Dictionary的好处。但是这样,您可以使用普通模型和可以使用的字典。否则,您必须编写自己的反序列化器才能使其正常工作。

最后,您的JSON无效。修复如下:

{
    "Schlagwortmaskname": "Verpackungstisch",
    "Schlagwort": [{
        "Name": "Fertigungsauftrag",
        "Wert": "4594"
    }, {
        "Name": "Kundenauftrag",
        "Wert": "Smith"
    }, {
        "Name": "Produktname",
        "Wert": "Jones "
    }, {
        "Name": "Artikelnummer",
        "Wert": "Jones "
    }, {
        "Name": "Seriennummer",
        "Wert": "Jones "
    }, {
        "Name": "Kunde",
        "Wert": "Jones "
    }, {
        "Name": "Endkunde",
        "Wert": "Jones "
    }, {
        "Name": "Musterbild",
        "Wert": "1"
    }, {
        "Name": "Kommentar",
        "Wert": "Jones "
    }, {
        "Name": "Repair Artikelnummer",
        "Wert": "Jones "
    }, {
        "Name": "Erstellt am",
        "Wert": "10.12.2012 15:15:15"
    }]
}