2017-04-12 2 views
0

Ich habe diese .json Datei Ich möchte eine Klasse mit Wörterbuch erstellen. Unten finden Sie die Klasse. Ich würde gerne mit dem Wörterbuch arbeiten. Weiß jemand wie ich die Klasse neu aufbauen müsste und wie ich dann die .json Datei lesen kann?C# Create Json Klasse mit Wörterbuch


{ 
    { "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

, die nicht gültig JSON ist, zu beginnen ... Sie erscheinen ohne Schlüssel ein verschachteltes Objekt zu haben ... Darüber hinaus würden Sie erfüllt mit einem Zwischen JSON spezifisch sein Darstellung, die Sie dann in einen Dictionary-Ansatz umwandeln können? Beachten Sie, dass 'Dictionary <,>' die Reihenfolge nicht bewahrt, was bedeutet, dass Sie nicht in der Lage wären, erneut zu serialisieren, ohne möglicherweise in JSON neu angeordnet zu werden. –

+0

Ja, das weiß. Vergebung. Leider wusste ich nicht mehr, wie ich machen musste, dass nur eine Saite rauskommt. {"Schlagwortmaskname": "Verpackungstisch"}. –

+0

Ich bin mir nicht sicher, was du meinst ... meinst du, die Frage zeigt nicht dein tatsächliches JSON, oder dass du nicht weißt, wie man es in die Frage richtig einfügt? –

Antwort

1

Sie könnten Ihre gewünschte Ergebnis wie folgt erreichen:

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

zu beachten, dass, wie Jon Skeet wies darauf hin, Sie werden nicht in der Lage sein, wieder zu serialisiert zurück zu JSON. Ich sehe den Vorteil der Verwendung eines Dictionary über ein Modell nicht wirklich. Auf diese Weise haben Sie Ihr normales Modell und ein Wörterbuch, mit dem Sie arbeiten können. Andernfalls müssen Sie Ihren eigenen Deserializer schreiben, damit dies funktioniert.

Schließlich ist Ihr JSON nicht gültig. Fix es wie folgt aus:

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