C#使用字典创建Json类

C#使用字典创建Json类,c#,json,C#,Json,我有这个.json文件,我想用dictionary创建一个类。 在下面你会发现这个类。 我想用字典。 有人知道我必须如何重建类,以及如何读取.json文件吗 公共类信息 { 公共字符串名称{get;set;} 公共字符串Wert{get;set;} } 公共类根对象 { 公共字符串Schlagwortmaskname{get;set;} 公共IList信息{get;set;} } 您可以通过以下方式实现所需的结果: static void Main(string[] args) {

我有这个.json文件,我想用dictionary创建一个类。 在下面你会发现这个类。 我想用字典。 有人知道我必须如何重建类,以及如何读取.json文件吗



公共类信息
{
公共字符串名称{get;set;}
公共字符串Wert{get;set;}
}
公共类根对象
{
公共字符串Schlagwortmaskname{get;set;}
公共IList信息{get;set;}
}

您可以通过以下方式实现所需的结果:

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; }
}
{
    "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"
    }]
}

这不是有效的JSON,首先。。。您似乎有一个没有键的嵌套对象。。。除此之外,您是否会满足于中间的JSON特定表示,然后可以将其转换为字典方法?请注意,
Dictionary
不保留顺序,这意味着如果不在JSON中重新排序,就无法再次序列化。是的,这是知道的。宽恕。不幸的是,我再也不知道我该如何使只有一个字符串出现
{“Schlagwortmaskname”:“Verpackungstisch”}
。我不知道你的意思。。。你的意思是问题没有显示你的实际JSON,或者你不知道如何将它正确地包含在问题中?对不起,我的意思是.JSON不正确,因为这一行
{“Schlagwortmaskname”:“Verpackungstisch”}
这一行应该只做
公共字符串Schlagwortmaskname{get;set;}
那么为什么不更新问题以显示正确的JSON呢?(理想情况下,更少的元素或
Informationen
——我们不需要所有这些来理解这个问题。)
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; }
}
{
    "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"
    }]
}