.net json exception serialization json.net

Cómo deserializar un JObject al objeto.NET



json exception (2)

De la documentación encontré esto

JObject o = new JObject( new JProperty("Name", "John Smith"), new JProperty("BirthDate", new DateTime(1983, 3, 20)) ); JsonSerializer serializer = new JsonSerializer(); Person p = (Person)serializer.Deserialize(new JTokenReader(o), typeof(Person)); Console.WriteLine(p.Name);

La definición de clase para Person debe ser compatible con lo siguiente:

class Person { public string Name { get; internal set; } public DateTime BirthDate { get; internal set; } }

Editar

Si está utilizando una versión reciente de JSON.net y no necesita serialización personalizada, consulte la respuesta anterior de TienDo (o la siguiente si me votó positivamente: P), que es más conciso.

Felizmente uso la biblioteca Newtonsoft JSON . Por ejemplo, crearía un JObject partir de un objeto .NET, en este caso una instancia de Exception (podría ser o no una subclase)

if (result is Exception) var jobjectInstance = JObject.FromObject(result);

ahora sé que la biblioteca puede deserializar texto JSON (es decir, una cadena) a un objeto

// only works for text (string) Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);

pero lo que estoy buscando es:

// now i do already have an JObject instance Exception exception = jobjectInstance.????

Bueno, está claro que puedo pasar de JObject al texto JSON y luego usar la funcionalidad deserializar, pero eso me parece retrógrado.


Según esta post , ahora es mucho mejor:

// pick out one album JObject jalbum = albums[0] as JObject; // Copy to a static Album instance Album album = jalbum.ToObject<Album>();

Documentación: Convierte JSON a un Tipo