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

Вы на полпути. Вы можете использовать метод Select() в пространстве имен System.Linq для проекта IEnumerable<JToken>, возвращенного из метода Children(), в IEnumerable<string>. Оттуда вы можете перебрать значения с помощью foreach или поместить значения в List<string>, используя ToList() (или оба).

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); 
} 

Fiddle: https://dotnetfiddle.net/Jcy8Ao

Смежные вопросы