Ich habe eine JObject die json mit der gleichen Struktur wie meine Geräteklasse enthält:Objekt von dynamischen Objekt
public class Entry
{
public string key { get; set; }
public object value { get; set; }
}
public class Detail
{
public List<Entry> entry { get; set; }
}
public class Device
{
public List<Detail> details { get; set; }
}
Ich speichere die json als dynamisch:
dynamic d = JsonConvert.DeserializeObject(json);
Ich möchte ein erstellen Geräteobjekt aus dem dynamischen Objekt:
new Device { details = d.details }
Ich kann nicht einfach so tun, weil Details eine Liste ist, die enthält eine Liste, und die Liste muss mit einem Konstruktor erstellt werden, ich kann nicht herausfinden, wie das geht. Sollte etwas wie sein?
new Device { details = new List<Detail> (entry = new List<Entry>(some list from d?))}}
Bitte beraten Sie mich.
EDIT:
Die Json und mein Objekt hat die gleiche Struktur nicht geteilt, es teilweise der Fall ist, so kann ich nicht einfach die während json konvertieren.
Warum nicht direkt als Eintrag deserialisieren? Verwenden Sie var entry = JsonConvert.DeserializeObject (Zeichenfolge json); –
bedane
Es ist nicht genau das gleiche, es teilt Ähnlichkeit, es ist nur diese Details Eigenschaft, die ich habe mit Problem beim Erstellen meiner tatsächlichen Objekt. Es ist fast 1000 Eigenschaften in den Objekten, so dass ich nicht alles hier posten kann. –
Warum verwenden Sie 'dynamic'? Vollständiges Objekt deserialisieren, was auch immer es als konkreter Typ ist. Wenn beide "Liste" enthalten, dann weisen Sie einfach den Wert einer Eigenschaft einer anderen Eigenschaft zu. –
Sinatr