2016-06-20 4 views
-1

Ich verwende Newtonsoft JSON.NET mit .NET 4.6.1.
Ich hatte gehofft, dass diese Bibliothek "intelligent" genug ist, um die gleichen Datentypen zu unterscheiden und sie automatisch in eine Sammlung zu konvertieren. There's the JSON. Ich hatte gehofft, alle "Index" -Eigenschaften in ein Array oder eine Liste zu bekommen.
Gibt es eine Möglichkeit, das richtig zu machen? Here are classes, dass ich versuchte, damit zu arbeiten.Wie wird JSON-String mit einer Liste der gleichen Objekte aber mit anderen Namen analysiert?

+0

:) also, was hält dich davon ab, es zu tun? – Candide

+0

@Candide mein Mangel an Wissen, daher die Frage? – drajvver

Antwort

1

Ich weiß nicht, ob es eine Möglichkeit gibt, automatisch zu tun, was Sie tun möchten, aber Sie können JSON-zu-LINQ verwenden, um zu erreichen, was Sie wollen.

Die Idee ist, den Knoten "history" aus Ihrem json-Inhalt zu erhalten und dann alle ersten childs Ihrer Unterknoten "indexXXX" zu extrahieren. Sobald Sie die Unterknoten haben, können Sie mit dem automatischen Deserializer gehen.

var data   = JObject.Parse(json); 
var historyItems = from d in data["history"] select d.First; 

foreach(var h in historyItems) 
{ 
    var history = JsonConvert.DeserializeObject<Index>(h.ToString()); 

    Console.Out.WriteLine("History : {0}, {1}, {2}", history.Pl, history.PlDesc, history.En); 
} 
+0

Das hat funktioniert, vielen Dank! :) – drajvver