2015-06-24 11 views
6

Ich habe dieses Problem schon einmal kennengelernt, wo ich ein Datenmodell erstellt habe, das später in eine JSON-Zeichenfolge serialisiert wird, aber ich möchte, dass die Klasse mit den Eigenschaften auch serialisiert wird. Siehe nachstehendes Beispiel:Wie kann ein JSON-Objekt in ein anderes Objekt eingefügt werden?

ich meine Datenmodell haben:

public class MyModel 
{ 
    [JsonProperty(PropertyName = "Prop1")] 
    public string Property1 { get; set; } 

    [JsonProperty(PropertyName = "Prop2")] 
    public string Property2 { get; set; } 
} 

die dann serialisiert werden würde:

{ 
    "Prop1":"Some Value", 
    "Prop2":"Some Value" 
} 

Gibt es eine Weise, die ich machen kann serialisiert zu:

{ 
    "MyModel": 
    { 
     "Prop1":"Some Value", 
     "Prop2":"Some Value" 
    } 
} 

Was ich gerade tue, was überhaupt nicht richtig erscheint, ist so etwas, um ein Wrapping-Objekt für m zu erstellen y JSON:

string object = @"{""ticket"":" + JsonConvert.SerializeObject(model) + @"}"

Gibt es irgendeine Art von Attribut ich wie zu meiner Klasse etwas hinzufügen:

[SerializeThisClass, ProperName="MyModel"] 
public class MyModel 
{ 
    [JsonProperty(PropertyName = "Prop1")] 
    public string Property1 { get; set; } 

    [JsonProperty(PropertyName = "Prop2")] 
    public string Property2 { get; set; } 
} 
+2

Verwenden JsonConvert.SerializeObject (neu {MyModel = Modell}) sein ; Dies erstellt ein anonymes Objekt mit einer einfachen Eigenschaft namens MyModel. –

Antwort

9
JsonConvert.SerializeObject(new{ MyModel = model}) 

sollte ok

1

eine andere Klasse hinzufügen, die MyModel als Mitglied hat dann die Eltern serialisiert.

public class Parent 
{ 
    [JsonProperty(PropertyName = "MyModel")] 
    public MyModel MyModel { get; set; } 

} 
0

Sie können das erreichen mit diesem

public class MyModel 
{ 
     [JsonProperty(PropertyName = "Prop1")] 
     public string Property1 { get; set; } 

     [JsonProperty(PropertyName = "Prop2")] 
     public string Property2 { get; set; } 
} 
public class Wrapper{ 
     [JsonProperty(PropertyName = "MyModel")] 
    public MyModel myModel{get;set;} 
} 

dann das Objekt Wrapper serialisiert

Verwandte Themen