Tôi chắc chắn câu hỏi này đã được hỏi hơn và hơn nữa, nhưng vì một lý do nào đó, tôi vẫn không thể quản lý để có được điều này để làm việc.Deserializing một mảng JSON đơn giản với DataContractJsonSerializer
Tôi muốn deserialize đối tượng JSON chứa một thành viên; một mảng chuỗi:
{"results" : ["a", "b"]}
Đây là lớp học mà tôi đang cố gắng để deserialize thành:
public class Whatever {
[DataMember(Name = "results")]
public string[] Results { get; protected set; }
}
Và đây là phương pháp 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);
}
}
Một cuộc gọi như Deserialize<Whatever>("{\"results\" : [\"a\", \"b\"]}")
là trả lại phiên bản được khởi tạo là Whatever
nhưng mảng Results
đang ở null
.
Có điều gì sai với cấu trúc của Whatever
?
Bạn không cần phải 'var dụ = Activator.CreateInstance(); 'sử dụng' typeof (T) ' –