2013-08-12 4 views
0

Я пытаюсь разобрать «VID» из этого json-данных {"response":[2,{"vid":165971367},{"vid":165971350}]}. Но он не хочет разбирать его. Я думаю, что проблема с «2» в json-данных. Как устранить эту цифру?Возьмите информацию от json

Вот мой код:

HttpClient client = new HttpClient(); 
HttpResponseMessage response = await client.GetAsync("some json data"); 
string googleSearchText = await response.Content.ReadAsStringAsync(); 
JObject googleSearch = JObject.Parse(googleSearchText); 
IList<JToken> results = googleSearch["response"].Children().ToList(); 
IList<SearchResult> searchResults = new List<SearchResult>(); 
+2

Не уверен, что ваша проблема - ваш образец действует в формате JSON. Нет кода, поэтому невозможно увидеть, что-то не так с кодом ... –

+0

Я хочу, как я могу устранить «2» и начать со второго объекта для анализа данных – user2660964

+0

Я вижу - вы используете «синтаксический анализ» как «данные процесса обрабатываются JSON.Net». Извините, меня всегда путает такой тип использования «синтаксического анализа». –

ответ

2

Если вы usng Json.NET и загружены, что в JSON JObject то вы свойство под названием «ответ» так: myJson [ «ответ»]

, который представляет собой JArray с 3 элементами, поэтому пропустите первый элемент. Пропустите (1) Тогда у вас есть IEnumerable и хотите собственность «VID», так что-то вроде:

var myVids = (from vids in myJObject["response"].Skip(1) 
       where vids["vid"] != null 
       select vids["vid"]) 
/* JSON 

{"response": 
    [2, 
    {"vid":165971367}, 
    {"vid":165971350} 
    ] 
} 

*/ 

Конечно, это всего лишь концепция, и вам нужно будет настроить для реальной жизни.

1

Вы можете пропустить первый элемент с помощью Skip метода:

IList<JToken> results = googleSearch["response"].Skip(1).ToList();