2009-08-01 38 views
9

Tôi có một chuỗi JSON theo hình thức này:deserializing biến Loại JSON mảng sử dụng DataContractJsonSerializer

string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]" 

Tôi cố gắng để deserialize JSON sử dụng C# .NET deserializer DataContractJsonSerializer với đoạn mã sau

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)); 
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>); 
X data = (X)serializer.ReadObject(ms); 

Vì mảng JSON là một mảng các kiểu biến tôi không biết loại đối tượng X nên là

Nếu m y Chuỗi là

jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]" 

tôi có thể sử dụng này:

X = List<List<String>> 

và đó sẽ làm việc cho tôi. Tôi đã tự hỏi nếu có bất kỳ cách nào để deserialize biến loại JSON mảng?

Trả lời

8

Bạn có thể sử dụng Json.NET để thực hiện việc này.

JArray a = JArray.Parse(jsonStr); 

JArray sẽ chứa một trong hai chuỗi hoặc lồng nhau JArray tùy thuộc vào JSON.

+0

Tôi sử dụng hội đồng này và thật tuyệt vời. Tôi rất khuyên bạn nên điều này. –

+0

Cảm ơn James đã làm việc cho tôi – Selene

Các vấn đề liên quan