2013-03-03 46 views
24

Đây là chuỗi json:Làm cách nào để đọc các giá trị trong mảng?

{"d":[{"numberOfRowsAdded":"26723"}]}

string json = DAO.getUploadDataSummary(); 
JObject uploadData = JObject.Parse(json); 
string array = (string)uploadData.SelectToken("d"); 

Làm thế nào để thay đổi mã để đọc các giá trị trong 'numberOfRowsAdded?

Trả lời

28

Bạn cần phải cast để JArray:

string json = "{\"d\":[{\"numberOfRowsAdded\":\"26723\"}]}"; 
JObject parsed = JObject.Parse(json); 
JArray array = (JArray) parsed["d"]; 
Console.WriteLine(array.Count); 
+2

Đó là một lựa chọn nhưng đúc đến một JArray là không cần thiết: uploadData [ "d"] [0] [ "numberOfRowsAdded"] –

+0

@ JamesNewton-King: Đối với một số lý do tôi muốn đọc những câu hỏi như muốn biết số * của các phần tử trong mảng ... và 'JArray' cảm thấy giống như cách đơn giản nhất để làm điều đó. –

31
JObject uploadData = JObject.Parse(json); 
int rowsAdded = Convert.ToInt32((string)uploadData["d"][0]["numberOfRowsAdded"]) 
+0

Tốt, nhà phát triển của Newtonsoft.Json. 1+ – IamBatman

3

Bạn có thể đúc của bạn JObject như một dynamic đối tượng.
Bạn cũng có thể truyền mảng của mình tới đối tượng JArray.

JObject yourObject; 
//To access to the properties in "dot" notation use a dynamic object 
dynamic obj = yourObject; 
//Loop over the array 
foreach (dynamic item in obj.d) { 
    var rows = (int)item.numberOfRowsAdded; 
} 
Các vấn đề liên quan