CamelCase bricht die Änderung in Json.NET Version 4

8

Ich habe gerade unser Json.NET von Version 3.5 Release 7 auf 4.0 Release 8 aktualisiert und festgestellt, dass die Seralisierung nicht auf die gleiche Weise erfolgt. Beim Serialisieren eines Objekts, das ein Standard-Dictionary enthält, hat die Version 3.5 die Dictionary-Schlüssel unverändert gelassen, aber bei Verwendung von 4.0 gilt der Contract Resolver auch für die Schlüssel.

Wenn Sie beispielsweise die folgenden JsonSerializerSettings verwenden:

%Vor%

und beim Serialisieren eines Objekts wie diesem:

%Vor%

Die Schlüssel im Attributes Wörterbuch werden ebenfalls zu camelCase. In Version 3.5R7 sind die unverändert geblieben und ich denke das ist der richtige Weg.

Beispielschnipsel von 3.5R7 Ausgabe:

%Vor%

Beispielschnipsel von 4.0R8 Ausgabe:

%Vor%

(Wir haben viel ähnlichen Code, also entfernen wir die camelCase-Auflösung und fügen [JsonProperty("id")] , [JsonProperty("nodeId")] usw. hier nicht wirklich hinzu)

Irgendwelche Ideen, wie Sie das lösen können?

    
mikaelnet 13.03.2012, 13:01
quelle

2 Antworten

2

Hmm - festgestellt, dass diese Änderung zwischen 4.0R1 und 4.0R2 vorgenommen wurde. Hier ist das Problem.

Ich kann sehen, dass es aus einer JSON-Perspektive korrekt ist, aber ich bin mir nicht sicher, ob ich der tatsächlichen Änderung wirklich zustimme. Zumindest keinen solchen Wechsel zwischen zwei Nebenversionen.

Eine Problemumgehung wird auch dort gepostet.

    
mikaelnet 14.03.2012 07:31
quelle
1

Uhm .. Downgrade auf eine Version, die so funktioniert, wie Sie es wollen.

Dann füge einen Fehlerbericht mit Json.NET ein.

    
Sam Axe 13.03.2012 14:33
quelle

Tags und Links