2013-03-03 6 views
24

Dies ist die json string:JObject wie Werte im Array gelesen werden?

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

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

Wie kann ich den Code für den Leser ändern sich die Werte in ‚numberOfRowsAdded?

Antwort

28

Sie müssen JArray würfen

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

Das ist eine Option, aber zu einem JArray Gießen nicht erforderlich ist: upload [ "d"] [0] [ "numberOfRowsAdded"] –

+0

@ JamesNewton-King: Aus irgendeinem Grund habe ich die Frage gelesen hatte als wollte die * Anzahl * der Elemente im Array wissen ... und 'JArray' fühlte sich als der einfachste Weg an, dies zu tun. –

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

Schön, der Entwickler von Newtonsoft.Json. 1+ – IamBatman

3

Sie Ihre JObject als dynamic Objekt werfen kann.
Sie können Ihr Array auch auf JArray Objekt umwandeln.

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; 
} 
Verwandte Themen