Я уверен, что этот вопрос задавался снова и снова, но по какой-то причине мне все еще не удается заставить это работать.
Я хочу десериализовать объект JSON, содержащий один элемент; массив строк:
{"results" : ["a", "b"]}
Это класс, который я пытаюсь десериализовать:
public class Whatever {
[DataMember(Name = "results")]
public string[] Results { get; protected set; }
}
И это метод 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);
}
}
Вызов типа Deserialize<Whatever>("{\"results\" : [\"a\", \"b\"]}")
возвращает инициализированный экземпляр Whatever
, но массив Results
остается null
.
Что-то не так со структурой Whatever
?