我確信這個問題一直被反覆詢問,但由於某種原因,我仍然無法設法讓這個工作。使用DataContractJsonSerializer反序列化一個簡單的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\"]}")
呼叫是返回Whatever
的初始化實例,但Results
陣列停留null
。
Whatever
的結構是否有問題?
你不需要'VAR實例= Activator.CreateInstance();'用'的typeof(T)' –