Задать вопрос
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..

Никак не могу разобраться с Json в c#?

Как мне скопировать title и url в строковые переменные. Много способов перепробовал, но ничего не получается. Нужно либо стандартными средствами либо с Newtonsoft .Json;
Желательно способ, там где меньше кода. Спасибо.

{
	"response":{
		"count":198,
			"items":[
		{
		"id":340125039,
		"owner_id":34254853,
		"artist":"IOWA",
		"title":"Маршрутка",
		"duration":190,
		"url":"http:\/\/cs7-5v4.vk-cdn.net\/p12\/f2b760cb436de0.mp3?extra=e4YwZ6p7cW89g9sxd_umf32-REUp46lEPjiCU-PerT5_VH7v6wPJxEnRZjf2I0nY_yJ8FQs7x_hyXH0dGtr27cP32ekSlx_F",
		"genre_id":9
	}
	]
	}
}
  • Вопрос задан
  • 2929 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
atri24
@atri24
.net developer
1) С помощью Newtonsoft .Json переводишь json в xml документ, например XDocument
2) Потом из xml с помощью XPath добираешься до нужного элемента

Предположим, что в txt1.txt лежит твой json
var str1 = File.ReadAllText(@"Data\txt1.txt");
var xdoc = JsonConvert.DeserializeXNode(str1);

var title = xdoc.XPathSelectElements("response/items/title").Select(x => x.Value).FirstOrDefault();
var url = xdoc.XPathSelectElements("response/items/url").Select(x => x.Value).FirstOrDefault();

А вообще лучше создать класс, в который можно десериализовать json. И потом десериализуем в него с помощью Newtonsoft .Json
Ответ написан
Комментировать
Razaz
@Razaz
Asp.Net junkie
Может слегка запоздал, но вариант c конвертацией в XML ужасен. Если нет необходимости/желания/возможности использовать модель, то есть следующие варианты:
1. LinqToJson. Релизован в Newtonsoft Json.NET
2. JsonPath. Реализован там же.
Ответ написан
Комментировать
EnterSandman
@EnterSandman
Эникей
Console.WriteLine((string)MyJsonObject["title"]);
Ответ написан
Комментировать
@Oxoron
Шарпер
Regex - это достаточно стандартное средство? Если нет - можно юзать String.Split() по кавычкам.
Но вообще, вариант Pavel Osadchiy мне нравится больше всего (вторая его часть):
А вообще лучше создать класс, в который можно десериализовать json. И потом десериализуем в него с помощью Newtonsoft .Json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы