2017-05-24 3 views
-4

Ich bin Französisch so leid, wenn mein Englisch ist manchmal unsicher ... Ich bin in einem Workplacement für eine 6Wochen (ich bin ziemlich neu in dieser Domäne .. .) und sie wollen, dass ich die tatsächliche DB (json) auf den realen Server in SQL übertrage und alles mit C#. Ich muss die JSON-Datei mit dem C# lesen, es in ein C# -Objekt konvertieren.lesen Sie JSON-Datei mit C# und konvertieren Sie es in C# -Objekt

Es ist ein Beispiel für die json DB:

{ 
    "updated": "2015-05-20T13:16:00.000Z", 
    "title": "Chaîne Activité", 
    "description": "Vidéos des activités diverses du Webcenter", 
    "items": [ 
    { 
     "id": "77B6573B-47E4-4D60-A6FC-99E81EF05404", 
     "uploaded": "2014-07-02T12:56:00.000Z", 
     "uploader": "Inconnu", 
     "category": "activité//Pléniére", 
     "title": "Teaser de la plénière 2014", 
     "description": "Marc Emmanuel de 'Tous Ensemble' et Axa Atout Coeur vous invite à la 3éme plénière.", 
     "thumbnail": "/Content/img/video/activite/teaser-pleniere-2014-.png", 
     "duration": 66, 
     "path": "Plénière-2014-teaser.mp4" 
    }` 

und es ist meine Klasse:

public class Item 
    { 
     public string Id { get; set; } 
     public string UploadDate { get; set; } 
     public string Uploader { get; set; } 
     public string Category { get; set; } 
     public string Title { get; set; } 
     public string Description { get; set; } 
     public string Thumbnail { get; set; } 
     public int Duration { get; set; } 
     public string Path { get; set; } 
    } 

Bitte denken Sie daran, dass ich bin kein Profi und vielen Dank für Ihre Hilfe ! :)

+1

Also, was haben Sie müde? –

+0

Sie möchten mit dem NewtonSoft Json nuget-Paket den JSON für Ihr Objekt deserialisieren. Verwenden Sie dann die DB-Technologie, die sie verwenden, entweder EF oder ADO, um es in db zu bekommen. – Stuart

+0

Ich jetzt whont Newtonsoft und ich werde mit meinem "Chef" für ADO sehen – MUGO

Antwort

1

Sie sollten Ihre Klassen wie dieses:

public class Item 
{ 
    public string id { get; set; } 
    public string uploaded { get; set; } 
    public string uploader { get; set; } 
    public string category { get; set; } 
    public string title { get; set; } 
    public string description { get; set; } 
    public string thumbnail { get; set; } 
    public int duration { get; set; } 
    public string path { get; set; } 
} 

public class RootObject 
{ 
    public string updated { get; set; } 
    public string title { get; set; } 
    public string description { get; set; } 
    public List<Item> items { get; set; } 
} 

Wie Sie die Eigenschaftsnamen die Schlüssel im JSON-Objekt übereinstimmen sehen können. Sie können Json.NET verwenden und das Attribut JsonProperty verwenden, um die richtigen Schlüssel der richtigen Eigenschaft zuzuordnen, falls Sie den json-Schlüsseln unterschiedliche Eigenschaftsnamen zuweisen möchten.

Z. B:

public class Item 
{ 
    [JsonProperty("id")] 
    public string Id { get; set; } 
    [JsonProperty("uploaded")] 
    public string Uploaded { get; set; } 
    [JsonProperty("uploader")] 
    public string Uploader { get; set; } 
    //Etc... 
} 

und können Ihre JSON-String dann in unseren RootObject Klasse deserialisiert werden:

public RootObject DeserializeJson(string jsonString) 
{ 
    var myObj = JsonConvert.DeserializeObject<RootObject>(jsonString); 
    return myObj; 
} 
+0

Vielen Dank für Ihre Antwort. Das Problem, das ich mit Ihrem Code habe, ist VS sagt, dass "var" nur in einem Skript verwendet werden kann und jsonString in diesem Bereich nicht existiert. Wenn ich JsonProperty benutze, bedeutet das, dass es die vorherige Klasse ersetzt? – MUGO

+0

'var' ist ein impliziter Typ und sollte in der Methode verwendet werden, in der Sie versuchen, die JSON-Zeichenfolge zu deserialisieren. Sie können auch den expliziten Typ 'RootObject' verwenden. 'jsonString' ist nur ein String-Variablenname, den ich erstellt habe. Sie würden die Variable verwenden, die Ihre json-Zeichenfolge enthält. Ich habe meine Antwort bearbeitet, um ein deutlicheres Beispiel dafür zu geben, was ich meine. – ThePerplexedOne

+0

fertig, kein Fehler mehr mit "var" oder "jsonString" ich war gerade am falschen Ort. Muss ich irgendeinen Link zum Lesen meiner JSON-Dateien in meine C# konvertieren? – MUGO

Verwandte Themen