Sto usando Newtonsoft JSON.NET per serializzare/deserializzare roba per me. Ma ho questa lista in cui essi sono di tipo Object
:JSON.NET - Come faccio a includere la gestione dei nomi dei tipi primitivi C# che sono archiviati in un array/elenco come Tipo di oggetto
var list = new List<Object>()
{
"hi there",
1,
2.33
};
Quando ho serializzare che con TypeNameHandling
insieme a TypeNameHandling.All
, mi aspettavo che darà anche un $type
per ogni istanza sulla lista, ma non sembra per essere il caso. Ecco l'uscita effettiva:
{
"$type": "System.Collections.Generic.List`1[[System.Object, mscorlib]], mscorlib",
"$values": [
"hi there",
1,
2.33
]
}
ho bisogno di questo per avere specifica Tipo Nome Handling per questi tipi primitivi, perché se aggiungo un valore Int32
in alla lista e quando si torna dopo la deserializzazione è JSON.NET imposta come Int64
. Questo è un grosso problema per me perché sto cercando di invocare alcuni metodi e per farlo ho bisogno di confrontare i parametri e DEVONO avere gli stessi tipi. C'è un modo o un'impostazione che puoi impostare in JSON.NET per ottenere ciò di cui ho bisogno?
Ho visto questo post ma quello che fa è che sta cercando di cambiare il comportamento predefinito e restituisce sempre Int32
che non è quello che sto cercando.
Qualsiasi aiuto sarebbe apprezzato. Grazie
Avrete bisogno per avvolgere i tuoi primitivi in qualcosa come 'TypeWrapper' da [Deserializzare enum specifico in system.enum in Json.Net] (https://stackoverflow.com/questions/31351262/deserialize-specific-enum-into-system-enum- in-json-net). –
dbc