2017-12-18 8 views
1

Ist es möglich, während der Deserialisierung einer JSON-Zeichenfolge ein Mapping auf ein Objekt anzuwenden?.NET Core - Json.NET-Deserialisierungszuordnung

Meine JSON-Zeichenfolge unterscheidet sich von dem Objekt, das ich deserialize möchte. Also muss das Mapping passieren. Ich versuche zu vermeiden, ein Modell zu machen, das 1 zu 1 der JSON-Zeichenfolge zuordnet, gefolgt von dem Zuordnen von Objekt zu Objekt mit beispielsweise AutoMapper.

Antwort

0

Verwenden Serialization Attributes für Ihre Serialisierung Mapping

public class JsonTest 
{ 
    [JsonProperty(PropertyName = "SomePropNameFromJson")] 
    public string SomeProp { get; set; } 
    [JsonProperty(PropertyName = "SomeNested")] 
    public SomeClass SomeClass { get; set; } 
} 
    public class SomeClass 
    { 
     public SomeClass1 SomeClass1 { get; set; } 
    } 

    public class SomeClass1 
    { 
      public string text { get; set } 
    } 

Hier Json

{ "SomeProp" konfigurieren: "Wert", "SomeNested": { "SomeClass1": { "text" : "Textwert" }}}

Js auf convert versuchen, Text in Objekt zu konvertieren durch Prop Name mit Wert über Reflektion Wenn sie Prop Name im Text findet, nehmen sie Wert wenn Prop Name einen anderen Namen in JSON hat, können Sie es über [JsonProperty (PropertyName = "SomeNested")] wenn dies angeben Attr nicht standardmäßig gesetzt wird es versuchen, durch Prop Name und was auch immer was Eigenschaft, es ein Objekt (Ihre verschachtelten Objekte) oder Grundtyp, wird es versuchen, es automatisch konvertieren.

+0

Funktioniert dies auch mit verschachtelten Eigenschaften? – user2963570

+0

@ user2963570, sicher – itikhomi

+0

Können Sie ein Beispiel geben? – user2963570