J'utilise volontiers le Newtonsoft JSON library. Par exemple, je voudrais créer un JObject
à partir d'un objet .NET, dans ce cas, une instance d'exception (peut ou non être une sous-classe)Comment désérialiser un objet JObject en .NET
if (result is Exception)
var jobjectInstance = JObject.FromObject(result);
maintenant je sais que la bibliothèque peut désérialiser texte JSON (par exemple une chaîne) à un objet
// only works for text (string)
Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);
mais ce que je cherche est:
// now i do already have an JObject instance
Exception exception = jobjectInstance.????
Eh bien, il est clair que je peux partir sur JObject
retour au texte JSON et ensuite utiliser la fonctionnalité de désérialisation, mais cela semble à l'envers pour moi.
Des idées sur les implications de performance ici? La réflexion sera-t-elle utilisée à chaque fois? –
Est-il possible de faire cela avec un JsonConverter personnalisé? –
Merci pour l'indice. Cela m'a beaucoup aidé. Permettez-moi d'ajouter quelque chose: Dans une méthode générique où j'utilise le type 'T', j'ai demandé quelque chose comme' result = (value is JObject)? ((JObject) value) .ToObject(): (T) default (T); 'pour le convertir avec succès (note -' value' est un objet provenant d'une base de données qui peut être un objet JObject ou autre dans quel cas devrait être nul). –
Matt