2017-07-05 83 views
0

我試圖從下面的json中獲取id參數,但沒有成功,使用c#。這是一個雙陣列(用戶/ warings)獲取JSON參數c的值#

JSON: 
contents = "{\"users\":[{\"id\":64,\"username\":\"100146\",\"firstname\":\"NAME\",\"lastname\":\"LASTNAME PROFILI\",\"department\":\"\",\"firstaccess\":0,\"lastaccess\":0"}],\"warnings\":[]}" 

這就是我試圖

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
object obj1 = serializer.DeserializeObject(contents); 
object obj2 = obj1["users"]; 
string id = obj2["id"]; 

我在obj2的得到一個錯誤。 我不想創建一個類來解析JSON,只需從'users'數組中提取id值就夠了

感謝您的時間!

+0

你得到的錯誤是什麼?某些基本信息有幫助 –

+0

錯誤是'錯誤無法將[]的索引應用於'object'類型的表達式,並且它出現在'object obj2 = obj1 [「users」];'行 – user77

回答

0

嘗試使用Newtwonsoft此:

var json = "{\"users\":[{\"id\":64,\"username\":\"100146\",\"firstname\":\"NAME\",\"lastname\":\"LASTNAME PROFILI\",\"department\":\"\",\"firstaccess\":0,\"lastaccess\":0}],\"warnings\":[]}"; 

dynamic data = JObject.Parse(json); 

var id = data.users[0].id; 
+0

下載newtonsoft ..回來很快標記爲答案,如果適合...謝謝! – user77

+0

這個伎倆,謝謝! – user77

1

嘗試使用動態的而不是對象類型:

dynamic d = JObject.Parse("{\"users\":[{\"id\":64,\"username\":\"100146\",\"firstname\":\"NAME\",\"lastname\":\"LASTNAME PROFILI\",\"department\":\"\",\"firstaccess\":0,\"lastaccess\":0"}],\"warnings\":[]}"); 

var usersCount = d.users.Count; 
var warningsCount = d.warnings.Count; 

var id = d.users[0].id; 
+0

嗨thiago,我會嘗試一下,不知道Newtwonsoft – user77

0

我還沒有嘗試過,但試圖利用object1 [ 「用戶」] [「ID 「]

+1

您好urvil,我試過這個,並得到一些錯誤,fizx使用json.net – user77