Ich bemerkte heute eine seltsame Ausgabe von Newtonsoft.Json, ich bin mir nicht sicher, ob es eine Interaktion mit F # -Typen oder etwas, das in C# auch auftreten kann, so habe ich beide markiert . Ich habe eine Liste der folgenden Datensatz serialisiert:Newtonsoft.Json Serialisierung einige Elemente zweimal
type SplitTracker =
{
[<JsonIgnore>]
split : SplitDefinition
mutable start : duration
mutable ``end`` : duration
mutable lapCount : int
mutable duration : duration Option
}
ich serialisiert es mit JsonConvert.SerializeObject
und ich erhalte die folgende ungerade Ausgabe:
"splits": [
{
"[email protected]": "0.00",
"[email protected]": "0.00",
"[email protected]": 0,
"[email protected]": null,
"start": "0.00",
"end": "0.00",
"lapCount": 0,
"duration": null
},
{
"[email protected]": "0.00",
"[email protected]": "0.00",
"[email protected]": 0,
"[email protected]": null,
"start": "0.00",
"end": "0.00",
"lapCount": 0,
"duration": null
}
Wer weiß, warum das passiert sein könnte? Die Daten sind korrekt, die Vervielfältigung von Feldern mit dem "@" Symbol ist das Problem.
Danke, sieht aus wie ich könnte das mit einem benutzerdefinierten Konverter reparieren, oder vielleicht, wenn ich diesen Algorithmus ohne veränderbare Variablen herausfinden kann – jackmott
Sie können '[]' auf Ihre veränderbaren Felder, so dass das Feld wird ignoriert. –
Tarmil
@jackmott: Ich würde wetten, dass es einen Weg gibt, den Algorithmus zu überdenken, um sich nicht auf Mutationen zu verlassen. Im Zweifelsfall hier posten. –