2016-04-24 5 views
0

I eine flache DTO habe ähnlicheJson Net serialisieren flachen Gegenstand in ein komplexes Objekt (Änderungsstruktur auf Serialisierung/Deserialisierung Objekte)

public class User 
{ 
    [JsonProperty("email")] 
    public string Email { get; set; } 

    [JsonProperty("fname")] 
    public string FirstName { get; set; } 

    [JsonProperty("lname")] 
    public string LastName { get; set; } 

    [JsonProperty("phone")] 
    public string Phone { get; set; } 

    [JsonProperty("city")] 
    public string City { get; set; } 

    [JsonProperty("country")] 
    public string CountryCode { get; set; } 

    [JsonProperty("state")] 
    public string State { get; set; } 

    [JsonProperty("zip")] 
    public string Zip { get; set; } 

    [JsonProperty("address1")] 
    public string Address1 { get; set; } 

    [JsonProperty("address2")] 
    public string Address2 { get; set; } 
} 

die standardmäßig in einem ‚flachen‘ JSON serialisiert:

{ 
    'email':'[email protected]', 
    'fname':'John', 
    'phone':'123456789', 
    'city':'New York', 
    'zip':'1111', 
    'lname':'Joe', 
    'state':'NY', 
    'address1' : 'address1' 
} 

ich möchte es serialisiert zu strukturierteren Objekt JSON:

{ 
    'email':'[email protected]', 
    'fname':'John', 
    'phone':'123456789', 
    'lname':'Joe', 
    'address' : { 
     'city':'New York', 
     'zip':'1111',   
     'state':'NY', 
     'address1' : 'address1' 
     }   
} 

gibt es eine Möglichkeit um es ohne Erstellen eines benutzerdefinierten JsonConverter zu tun?

Antwort

3

Nein, es gibt keine Möglichkeit, dies JsonConverter ohne Gewohnheit zu tun, oder ohne adpating die Struktur Ihres flach Modell durch eine richtige Address Klasse einzuführen.

+0

Nun, es wäre auch möglich mit einem [custom contractresolver] (http://www.newtonsoft.com/json/help/html/contractresolver.htm) - aber das wäre noch mehr Arbeit. – dbc

Verwandte Themen