Ja, TJsonMemberSerialization.Fields
ist der Default, aber das hat Probleme beim Deserialize. Während beim Serialize das F bei den Feldnamen entfernt wird, fehlt dies offenbar beim Vergleich der Feldnamen während des Deserialize in TJsonObjectContract.GetClosestMatchProperty
. Ich habe das jetzt nicht bis zu Ende analysiert, aber ich gehe da von einem Bug aus. Es wundert mich aber, dass das offenbar noch keinem aufgefallen ist.
Ja, meine Analyse wird allmählich etwas umfangreicher (verschiedene Konstellationen, neuer Parameter "FTest3", der nur Private ist. Interfaces, umfangreichere Logs samt Performance-Tests. Mit [JsonName('Test')] als Attribut pro Feld geht es (was ja auch deiner "Das 'F' wird nicht entfernt"-Erkenntnis entsprechen würde). Ich halte euch da hier auf dem Laufenden.
Ja es gibt etliche Drittanbieter-Lösungen. Darauf möchte ich aber in diesem Fall verzichten.
Der minimale Performance-Gewinn ist es mir nicht wert mich da ggf. abhängig zu machen. Ggf. regelmäßige Updates einzupflegen. Oder gar Gefahr zu laufen, dass das Projekt eingestampft wird und alles nochmal umbauen zu müssen.
Liebe Grüße und schonmal vielen Dank bis hierhin für eure Mühe
Incocnito