Page 1 of 1

So konvertieren Sie JSON in eine C#-Klasse, wenn der „Name“ des Objekts ohne benutzerdefinierte Klassen variiert [Duplik

Posted: 04 Jan 2025, 04:53
by Guest
Dieser JSON wird von einer API zurückgegeben (er gibt etwa 100 Elemente zurück):

Code: Select all

{
"translation": {
"el": {
"name": "Greek",
"nativeName": "Ελληνικά",
"dir": "ltr"
},
"en": {
"name": "English",
"nativeName": "English",
"dir": "ltr"
}
}
}
Und ich kann diesen Code schreiben, um ihn zu deserialisieren:

Code: Select all

// Root myDeserializedClass = JsonConvert.DeserializeObject(myJsonResponse);
public class El
{
public string name { get; set; }
public string nativeName { get; set; }
public string dir { get; set; }
}

public class En
{
public string name { get; set; }
public string nativeName { get; set; }
public string dir { get; set; }
}

public class Root
{
public Translation translation { get; set; }
}

public class Translation
{
public El el { get; set; }
public En en { get; set; }
}

Aber der Name („el“, „en“) ändert sich mit jeder Sprache, und daher kann ich nicht für jede Sprache benutzerdefinierte Klassen schreiben. Ich muss in der Lage sein, den JSON in ein Objekt wie dieses zu deserialisieren, damit es in einer Datenbank gespeichert werden kann.

Code: Select all

public class LanguageInfo{
public string LanguageId {get; set;}
public string Name {get;set;}
public string NativeName {get;set;}
public string Direction {get;set;}
}
Gibt es eine Möglichkeit, das zu tun?