2017-04-14 4 views
0

Ich habe eine JSON-Struktur aus einer vorhandenen REST-API, die ich benutze, um verschiedene Klassen mit Newtonsoft.Json (JSON.Net) zu füllen.JSON in C# -Klasse einbetten und umgekehrt

Ich möchte einen Assistenten erstellen, der dieselbe REST-API-JSON-Struktur auffüllt.

Das Problem, das ich habe, ist, dass meine Klassenbenennungskonvention sich von der API JSON Namenskonvention unterscheidet.

Meine Frage ist: Soll ich meine Klasse mit der gleichen Namenskonvention wie die REST-API-JSON-Struktur machen, um die jsonconvert.serializeobject zu verwenden, oder sollte ich nur eine JSON-Zeichenfolge erstellen, die der JSON-Struktur entspricht?

Antwort

0

Ich würde eine dritte Option anbieten. Sie können Ihre Klasseneigenschaften mit [JsonProperty]-Attributen markieren, um sie mit anders benannten JSON-Eigenschaften abzugleichen. Auf diese Weise müssten Sie weder Ihre JSON noch die Namenskonvention in Ihren Klassen ändern. Hier ist ein einfaches Beispiel:

JSON:

{ 
    "item-identifier": 1234, 
    "item-name": "foo" 
} 

Klassendefinition:

public class Item 
{ 
    [JsonProperty("item-identifier")] 
    public int Id { get; set; } 

    [JsonProperty("item-name")] 
    public string Name { get; set; } 
} 

deserialisieren:

Item item = JsonConvert.DeserializeObject<Item>(json); 

Fiddle: https://dotnetfiddle.net/bwa1SM

+0

Thank you so viel Brian. Klappt wunderbar. –

+0

Ich möchte nur für andere Leser hinzufügen, dass Sie eine Eigenschaft hinzufügen können, die Sie hinzufügen können [JsonIgnore] –

Verwandte Themen