Десериализация простого массива JSON с помощью DataContractJsonSerializer

Я уверен, что этот вопрос задавали снова и снова, но по какой-то причине мне все еще не удается заставить его работать.

Я хочу десериализовать объект 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 ("{\" results \ ": [\" a \ ", \" b \ "]}") возвращает инициализированный экземпляр Whatever , но массив Results остается нулевым .

Что-то не так со структурой Whatever ?

14
задан Andreas Grech 20 November 2011 в 20:07
поделиться