2013-12-19 201 views
1

我嘗試分析一些JSON是這樣的:如何將JSON數組轉換爲字符串值的數組

{ 
    "results": [ 
     "MLU413843206", 
     "MLU413841098", 
     "MLU413806325", 
     "MLU413850890", 
     "MLU413792303", 
     "MLU413843455", 
     "MLU413909270", 
     "MLU413921617", 
     "MLU413921983", 
     "MLU413924015", 
     "MLU413924085" 
    ] 
} 

一切都很好,直到我試圖獲得這些值本身,例如:

// The JSON is shown above 
var jsonResp = JObject.Parse(json);  
var items = jsonResp["results"].Children(); 

我不知道如何獲得的值,每個轉換成字符串。有人知道如何做到這一點?

+0

你試圖解析JSON是無效的。在鍵和值之間不應該有減號。 – user3038092

+0

你應該先學習json結構。意思是如何一個json對象結構是 –

+0

這看起來是正確的,什麼是不工作? – bmm6o

回答

1

你在這裏一半。您可以使用System.Linq名稱空間中的Select()方法將Children()方法返回的IEnumerable<JToken>投影到IEnumerable<string>中。從那裏你可以循環使用foreach的值,或使用ToList()(或兩者)將值放入List<string>

string json = @" 
{ 
    ""results"": [ 
     ""MLU413843206"", 
     ""MLU413841098"", 
     ""MLU413806325"", 
     ""MLU413850890"", 
     ""MLU413792303"", 
     ""MLU413843455"", 
     ""MLU413909270"", 
     ""MLU413921617"", 
     ""MLU413921983"", 
     ""MLU413924015"", 
     ""MLU413924085"" 
    ] 
}"; 

JObject jsonResp = JObject.Parse(json); 
List<string> items = jsonResp["results"].Children() 
             .Select(t => t.ToString()) 
             .ToList(); 
foreach (string item in items) 
{ 
    Console.WriteLine(item); 
} 

小提琴:https://dotnetfiddle.net/Jcy8Ao

相關問題