2011-04-28 5 views
0

더 나은 방법은 (특히 Linq를 사용하여) 다음 json 문자열에서 ID의 List/IEnumerable을 반환 할 수 있습니까? 플랫 목록에 사전 배열

string json = "[{\"Id\":38,\"Name\":\"Albert Einstein\",\"Document\":\"845.803.604-51\"},{\"Id\":102,\"Name\":\"Benoit Mandelbrot\",\"Document\":\"657.322.962-20\"},{\"Id\":86,\"Name\":\"Santos-Dumont Aerospace\",\"CpfCnpj\":\"24.195.152/0001-55\"}]"; 

현재 내가 가진 :

Dictionary<string, string>[] deserializedJSON = Ext.Net.JSON.Deserialize<Dictionary<string, string>[]>(json); 

List<decimal> idList = new List<decimal>(); 

foreach (var item in deserializedJSON) 
{ 
    foreach (var i in item) 
    { 
     if (i.Key == "Id") 
      idList.Add(Convert.ToDecimal(i.Value)); 
    } 
} 
+1

왜 당신은'Dictionary' 인덱서를 사용하지 않는? – SLaks

+1

모든 항목에 ID가 있습니까? – SLaks

+0

@SLaks 네, null 허용되지 않습니다. – BrunoSalvino

답변

5
idList = deserializedJSON.Select(d => decimal.Parse(d["Id"])) 
         .ToList();