2016-07-22 18 views
0

Ich habe eine json wieDeserialize JSON-Objekt mit newtonsoft json

{"NewMessage":[{"Id":-1,"Message":"Test","MessageName":"test1"}],"OldMessage":[]} 

und ich brauche dieses json in meiner Klasse Objekt deserialisieren.

meine Klasse

public class NewMessage{ 
public int Id{get;set;} 
public string Message{get;set;} 
public string MessageName{get;set;} 
} 

public class OldMessage{ 
public int Id{get;set;} 
public string Message{get;set;} 
public string MessageName{get;set;} 
} 

wie können wir diese achive durch newtonsoft.json verwenden. Kann jemand helfen. Vielen Dank im Voraus

Antwort

2

Ihre JSON enthalten tatsächlich ein Objekt, das Eigenschaften Ihrer definierten Klassen - angesichts der Code gebucht, haben Sie keine Klasse zu deserialisieren.

Das erste, was Sie tun können, ist offensichtlich - erstellen Sie eine dritte Klasse - MessagePair - die zwei Eigenschaften erklärt - NewMessage[] und OldMessage[]. Dann können Sie die JSON-String wie folgt deserialisieren:

var theMessages = JsonConvert.DeserializeObject<MessagePair>(jsonText); 

Wenn Sie nicht eigene Klasse mögen erstellen, können Sie dann deserialisieren in anonyme Objekt wie folgt:

var theMessages = new { 
    NewMessage[] NewMessages = null, 
    OldMessage[] OldMessages = null 
}; 

theMessages = JsonConvert.DeserializeAnonymousType(jsonText, theMessages); 
Verwandte Themen