Die Reihenfolge der Eigenschaften wird bei der Serialisierung durch JSON.NET durcheinander gebracht

8

In meinen POCO-Objekten erben ich oft von anderen POCO-Objekten. Wenn ich ein POCO-Objekt mit JSON.NET serialisiere, wird die Reihenfolge der Eigenschaften durcheinander gebracht.

Sagen Sie, ich habe eine Person-Klasse, die so aussieht:

%Vor%

Dann habe ich eine Employee-Klasse, die von der Person-Klasse erbt:

%Vor%

Wenn ich die Employee-Klasse serialisiere, sieht mein JSON-Objekt folgendermaßen aus:

%Vor%

Zwei Fragen:

  1. Ist die Reihenfolge meiner JSON-Objekteigenschaften wichtig?
  2. Auch wenn die Reihenfolge der Eigenschaften keine Rolle spielt, wie kann ich die Eigenschaften in der richtigen Reihenfolge erhalten, d. h. ich möchte zuerst die Eigenschaften der Personenklasse und dann die Eigenschaften der Mitarbeiterklasse sehen.

Danke für Ihre Hilfe.

    
Sam 19.09.2014, 03:35
quelle

2 Antworten

13

1.) Nein, Reihenfolge spielt keine Rolle.

2.) Sie können das Attribut [JsonProperty (Order = x)] verwenden, um die Reihenfolge zu steuern:

%Vor%

Bei einem Schnelltest wird die Reihenfolge standardmäßig auf 0 gesetzt, die Sortierung erfolgt von niedrig nach hoch und die Eigenschaften mit dem gleichen Wert von Reihenfolge werden in einer beliebigen Reihenfolge sortiert.

    
Frank Racis 19.09.2014, 03:57
quelle
0

Da mein Objekt bereits ein JObject war, musste ich eigentlich die folgende Lösung verwenden:

%Vor%

und benutze es dann so:

string serializedObj = JsonConvert.SerializeObject(new SortedJObject(dataObject)) ;

    
Danny R 08.06.2016 22:47
quelle

Tags und Links