一尘不染

使用DataContractJsonSerializer反序列化一个简单的JSON数组

json

我确定这个问题已经被一遍又一遍地询问了,但是由于某种原因,我仍然无法设法解决这个问题。

我想反序列化包含单个成员的JSON对象;字符串数组:

{"results" : ["a", "b"]}

这是我要反序列化的类:

public class Whatever {
    [DataMember(Name = "results")]
    public string[] Results { get; protected set; }
}

这是反序列化方法:

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\"]}")返回的初始化实例,WhateverResults数组保持不变null

的结构有问题Whatever吗?


阅读 238

收藏
2020-07-27

共1个答案

一尘不染

嗯,发布此消息后,我意识到我缺少以下DataContract属性的修饰Whatever

[DataContract]
public class Whatever {
    [DataMember(Name = "results")]
    public string[] Results { get; protected set; }
}

现在工作正常。

2020-07-27