2013-12-19 206 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

相关问题