Ich habe eine Klasse mit einem Satz von Eigenschaften für z.B .:Karte zwei verschiedene Objekte mit unterschiedlichen Eigenschaften
class Employee
{
string Id {get ; set ; }
string Name {get ; set ; }
string Lastname {get ; set ; }
string email {get ; set ; }
}
Ich habe ein anderes Objekt - ich die Daten von einem Dritten als API String erhalten. Ich benutzte NewtonSoft Json, um sie zu deserialisieren. Ihre Struktur sieht ungefähr so aus:
class ThirdPartyEmployee
{
string EmpId {get ; set ; }
string fName {get ; set ; }
string LName {get ; set ; }
string emailID {get ; set ; }
string Phonenumber {get ; set ; }
}
Aus Gründen der Einfachheit - ich kann die Eigenschaft der beiden Klassen nicht ändern.
Nun ist die Frage, wenn ich das JSON-Objekt erhalten,
List<Employee> obj1 = new List<Employee>();
List<ThirdPartyEmployee> obj2 = JsonConvert.DeserializeObject<List<ThirdPartyEmployee>>(JsonConvert.SerializeObject(responseString));
Jetzt brauche ich obj2
als obj1
zu werfen.
foreach (var currObj2 in obj2)
{
Employee employee = null ;
employee .Id = currObj2 .EmpId;
employee.Name = currObj2.fName;
employee.Lastname = currObj2.LName;
employee.email = currObj2.emailID;
obj1.add(employee);
}
Gibt es einen einfacheren Weg, dies zu tun mit einigem Mapping-Mechanismus: Während ich kann sagen, manuell tun?
Während ich ein einfacheres Beispiel gegeben habe, ist das tatsächliche Szenario mit Unterobjekten und viel mehr Eigenschaften viel komplizierter.
einen Konstruktor der Mitarbeiter erstellen und ein Objekt von ThirdPartyEmployee wie dieser 'öffentliche Angestellter (ThirdPartyEmployee tpeObj) übergeben {/ * Assign in diesem Konstruktor * /}' wird Karte – GSP
können Sie einen Blick auf Autoadapter, [Autoadapter Starter Guide] (https://github.com/AutoMapper/AutoMapper/wiki/Getting-Started) –
Ich denke, Sie sollten das Tag json.net hinzufügen. Hier wird durch json converter gegossen. also ich denke es sollte zum tag – Eldho