WebApi - Deserialisieren und serialisieren der alternativen Namen für die Eigenschaft

Ich versuche, herauszufinden, wie kann ich geben Sie Alternative Namen für die Eigenschaft mit ASP.NET WebApi - und für die Deserialisierung + - Serialisierung und JSON + XML. Ich habe nur aufgedeckt Teillösungen so weit.

Ich möchte aufzeigen, die property-Namen in Kleinbuchstaben mit Unterstrich und (zum Beispiel Willen) haben unterschiedliche interne Bezeichnungen:

Externe:

  • Feld-eine
  • Feld-zwei

Intern:

  • ItemOne
  • ItemTwo

Für die Prüfung, hier ein BEITRAG controller-Aktion, die nur relais, was es empfängt:

//POST api/values
public TestSerialization Post([FromBody]TestSerialization value)
{
    return value;
}

Und eine test Einheit:

public class TestSerialization
{
    [DataMember(Name = "field_one")] //Doesn't appear to change anything
    public string ItemOne { get; set; }

    [JsonProperty(PropertyName = "field_two")] //Only works for serialization in JSON mode
    public string ItemTwo { get; set; }
}

Bisher, die ich gefunden habe:

  • [DataMember(Name = "x")] hat keine Wirkung auf die Serialisierung in beiden Richtungen
  • [JsonProperty(Name = "x")] funktioniert bei der Serialisierung (der Rückgabewert) bei der Verwendung von JSON. (Es ist ein JSON.NET Attribut, das Standard-serializer).

Für test-Daten, die ich eingebe, 4 Eigenschaften, um zu sehen, welcher Wert wird deserialisiert, und was der name der Eigenschaft ist auf der Deserialisierung

  • ItemOne = "Wert"
  • ItemTwo = "Wert B"
  • Feld-eins = "Richtige 1"
  • Feld-zwei = "2 Richtige"

Wie kann ich das erreichen?

InformationsquelleAutor Overflew | 2014-03-18
Schreibe einen Kommentar