Если нужно вытащить только один определенный элемент, то создавать классы для десериализации мне кажется немного избыточным. Можно использовать Linq2Json
bear1489 и в чем сложность вставить код на сайт и получить результат и сразу его использовать? Ну а далее просто найти в списке нужный элемент и из него легко получить искомое поле.
var item = "ваш json что показали";
var json = JToken.Parse(item);
var count = json[11]["count"].ToObject<string>();
или
var array = JArray.Parse(item);
var count = array.Where(x => x["name"].ToObject<string>() == "facebook").First()["count"].ToObject<string>();
или
var array = JArray.Parse(item);
foreach (var element in array)
{
if (element["name"].ToObject<string>() == "facebook")
{
count = element["count"].ToObject<string>();
}
}
Как-то так. Я это не проверял, по этому не могу точно сказать что все будет работать так как нужно
Ваш json - массив, а значит вместо JObject нужно использовать JArray.
Дальше, если вы уверены что значение name для которого вы хотите узнать значение count существует и единственное используйте Single. Для извлечения значения определенного типа есть метод Value
var test = JArray.Parse(json);
var count = // count = 125
test
.Single(j => j.Value<string>("name") == "facebook")
.Value<int>("count");
Но если подобных поисков у вас будет много, то я все-же советую воспользоваться предложением VoidVolker и сгенерировать классы для более удобной работы. Например, преобразовать в словарь с ключами - name и значениями SomeItem.
спасибо! Да я понимаю, что если много поисков, то надо генерировать классы, но было интересно как достать определенное значение одной строчкой. Я пользовался SelectToken и вот с массивом столкнулся с проблемой, делал кастыль, дописывал к этой строке в начало {service: и в конец }, тогда у меня всё работало, но хотелось узнать как сделать это без дописываний, используя Linq )) ещё раз спасибо!