Jestem pewien, że to pytanie było zadawane w kółko, ale z jakiegoś powodu wciąż nie mogę tego zrobić.Deserializowanie prostej macierzy JSON za pomocą DataContractJsonSerializer
Chcę deserializować obiekt JSON zawierający pojedynczy element członkowski; tablicę ciągów:
{"results" : ["a", "b"]}
Jest to klasa, która próbuję deserializowania do:
public class Whatever {
[DataMember(Name = "results")]
public string[] Results { get; protected set; }
}
I to jest metoda Cofnięcie:
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);
}
}
Rozmowa jest jak Deserialize<Whatever>("{\"results\" : [\"a\", \"b\"]}")
zwracając zainicjowaną instancję o numerze Whatever
, ale tablica Results
pozostaje w stanie null
.
Czy coś jest nie tak ze strukturą Whatever
?
Nie musisz 'instancji var = Activator.CreateInstance();' 'używać typeof (T)' –