2017-09-16 1 views
0

Wie würde ich basierend auf diesem Code in dieser Diskussion (How to build object hierarchy for serialization with json.net?) die JNotification initialisieren und Werte zu JNotification zuweisen, die JPayload, JCustomData, JFilter enthält?C# Klasse initialisieren und Werte zuweisen Newtonsoft.Json

public class JNotification 
{ 
    public string status { get; set; } 
    public JPayload payload = new JPayload(); 
    public JFilter filter = new JFilter(); 
} 

public class JPayload 
{ 
    public string title { get; set; } 
    public string message { get; set; } 
    public JCustomData customData = new JCustomData(); 
} 

public class JCustomData 
{ 
    public string addType { get; set; } 
    public string addTitle { get; set; } 
    public string addMessage { get; set; } 
    public int addAppraiserId { get; set; } 
    public int addAppraisalId { get; set; } 
    public int addAppraisalCommentId { get; set; } 
    public int addAppraisalStatusHistoryId { get; set; } 
} 

public class JFilter 
{ 
    public int AppraiserId { get; set; } 
} 

Antwort

1

Um den Objektgraphen, serialisiert zu json und entserialisieren tun zu erstellen.

Hinweis: Wenn Sie die standardmäßige Namenskonvention von C# verwenden möchten, können Sie den Serializer auf den ersten Buchstaben jeder Eigenschaft in Kleinbuchstaben setzen.

Darüber hinaus gibt es die Ausgabe konfigurieren Attribute (wenn Sie eine Immobilie überspringen möchten, verwenden Sie Zeichenfolgen für Aufzählungen, etc.)

+0

Troels, genau das, was ich suchte. Vielen Dank! – Jeffry

0

Ich bin ziemlich sicher, Jsons Deserialisierung wird den öffentlichen Konstruktor no-arg aufrufen. Wenn Sie diese Objekte im Konstruktor der JNotification konstruieren, sollten sie initialisiert werden.

var data = new JNotification() { 
    status = "New", 
    payload = new JPayload() { 
     title = "SomeTitle", 
     message = "msg", 
     customData = new JCustomData() { ... } 
    }, 
    filter = new JFilter() { 
     AppraiserId = 1 
    } 
} 
string json = JsonConvert.SerializeObject(data); 
JNotification dataAgain = JsonConvert.DeserializeObject<JNotification>(json); 

Above mit dem Newtonsoft.Json NuGet Paket:

Verwandte Themen