Ich möchte ein JSON-Objekt zu einer benutzerdefinierten Klasse deserialisieren. Die Klasse könnte wie folgt aussehen:JSon.Net Deserialize benutzerdefinierte Klasse
public class CommunicationMessage {
public string Key { get; set; }
public string Value { get; set; }
public List<CommunicationMessage> Childs { get; set; }
}
Und die json ich wie folgt aussieht deserialisieren möchten:
{
"Skills": [{
"Skill": [{
"SkillID": "1",
"ParticipantID": "7",
"CanDo": "True"
}, {
"SkillID": "2",
"ParticipantID": "7",
"CanDo": "True"
}, {
"SkillID": "3",
"ParticipantID": "7",
"CanDo": "False"
}]
}]
}
Und das ist der Code, den ich die json deserialisieren bin mit:
private void ReadRecursive(JToken token, ref CommunicationMessage root) {
if (token is JProperty) {
CommunicationMessage msg = new CommunicationMessage();
if (token.First is JValue) {
msg.Key = ((JProperty)token).Name;
msg.Value = (string)((JProperty)token).Value;
} else {
msg.Key = ((JProperty)token).Name;
foreach (JToken child in token.Children()) {
ReadRecursive(child, ref msg);
}
}
root.Childs.Add(msg);
} else {
foreach (JToken child in token.Children()) {
ReadRecursive(child, ref root);
}
}
}
Ich erwarte, diese hirarchy zu erhalten:
Skills
Skill
SkillID:1
ParticipantID:7
CanDo:true
Skill
SkillID:2
ParticipantID:7
CanDo:true
Skill
SkillID:3
ParticipantID:7
CanDo:false
Aber ich bin immer dies:
Skills
Skill
SkillID:1
ParticipantID:7
CanDo:
SkillID:2
ParticipantID:7
CanDo:true
SkillID:3
ParticipantID:7
CanDo:false
Ich kann die Linien finden, wo mein Versagen ist, vielleicht kann mir jemand hier helfen.
Danke !!
Das ist leider nicht möglich. Normalerweise hätte ich gerne ein JSON-Objekt, das Elemente mit demselben Schlüssel enthält. Aber Json ist nicht allos. So las ich, dass ich meine Klasse zum json umwandeln konnte, das ich –