2013-11-11 2 views
0

JSON:Как я могу заказать не типизированный массив?

"media$thumbnail":[ 
    { 
    "url":"https://i1.ytimg.com/vi/gL23XCv6rek/default.jpg", 
    "height":90, 
    "width":120, 
    "time":"00:08:11", 
    "yt$name":"default" 
    }, 
    { 
    "url":"https://i1.ytimg.com/vi/gL23XCv6rek/mqdefault.jpg", 
    "height":180, 
    "width":320, 
    "yt$name":"mqdefault" 
    }, 
    { 
    "url":"https://i1.ytimg.com/vi/gL23XCv6rek/hqdefault.jpg", 
    "height":360, 
    "width":480, 
    "yt$name":"hqdefault" 
    } 
] 

Мой код:

var thumbnailList = (JArray)item["media$group"]["media$thumbnail"]; 

, и я хотел бы, чтобы извлечь "url" с максимальной "width" значением.

Я должен заказать этот список с OrderByDescending(p => p.width), но, конечно, я не могу получить доступ к этому типизированному значению.

Как я могу это сделать? Есть ли способ LINQ?

+0

Не можете проверить прямо сейчас, но я хотел бы попробовать что-то вроде 'OrderByDescending (т => Convert.ToInt32 (t.SelectToken ("ширина")))'. Обработка ошибок не включена :) –

+0

Да, это работает :) Если вы написали ответ, вы получите +1: P – markzzz

ответ

1

Что вы получаете это JArray, что вы можете перечислить на JToken с, и JToken имеет метод SelectToken, который может получить значение вложенного внутри него.

Используя Linq, вы получите что-то похожее;

OrderByDescending(t => Convert.ToInt32(t.SelectToken("width"))) 
Смежные вопросы