Estoy seguro de que esta pregunta se ha formulado una y otra vez, pero por alguna razón, todavía no logro hacerlo funcionar.Deserializar una matriz JSON simple con DataContractJsonSerializer
Quiero deserializar un objeto JSON que contiene un único miembro; una matriz de cadenas:
{"results" : ["a", "b"]}
Esta es la clase que estoy tratando de deserializar en:
public class Whatever {
[DataMember(Name = "results")]
public string[] Results { get; protected set; }
}
Y este es el método Deserialize:
private static T Deserialize<T>(string json)
{
var instance = Activator.CreateInstance<T>();
using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
var serializer = new DataContractJsonSerializer(instance.GetType());
return (T)serializer.ReadObject(ms);
}
}
una llamada como Deserialize<Whatever>("{\"results\" : [\"a\", \"b\"]}")
es devolviendo una instancia inicializada de Whatever
pero la matriz Results
se queda null
.
¿Hay algún problema con la estructura de Whatever
?
No es necesario instancia de 'var = Activator.CreateInstance();' 'utilizar typeof (T)' –