2017-04-12 62 views
0

我有这个.json文件我想用字典创建一个类。 下面你会发现这个班。 我想与字典一起工作。 有谁知道我将不得不重建该类,然后如何才能读取.json文件?C#使用字典创建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

这不是有效的JSON,下手......你似乎有一个不带钥匙嵌套对象......除此之外,你将与JSON-特定中间满足您可以转换成字典方法的表示法?请注意,'Dictionary <,>'不会保留顺序,这意味着如果不在JSON中重新排序,您将无法再次序列化。 –

+0

是的,知道。饶恕。不幸的是,我不知道该如何让只有一个字符串出现在{{“Schlagwortmaskname”:“Verpackungstisch”}。 –

+0

我不确定你的意思是...你的意思是这个问题没有显示你的实际JSON,或者你不知道如何正确地将它包含在问题中? –

回答

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; } 
} 

需要注意的是,作为乔恩斯基特指出的那样,你将无法再次连载到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" 
    }] 
}