Этот вопрос закрыт для ответов, так как повторяет вопрос Какой есть эффективный и разумный способ парсинга JSON?
@faridjannatov
Новичок в C#, второй язык программирования

Как парсить JSON строку в C#?

{"ts":1810854975, "updates":[[51,101,1],[6,2000000101,659328],[4,659329,8227,2000000101,1515248228,"",{"source_act":"chat_title_update","source_text":"Новое название","source_old_text":"п","from":"218803928"}]]}

Нужно получить значение source_text и записать в переменную. Пытался парсить, но ничего не вышло, впервые с этим сталкиваюсь. Помогите новичку)

Было бы прекрасно, если бы вы объяснили на коде) заранее спасибо)
  • Вопрос задан
  • 5183 просмотра
Решения вопроса 1
arxont
@arxont
C# программист
В плане парсинга JSON в C# существует два разных подхода - через класс или через dynamic. Класс правильнее использовать если вам в дальнейшем что-то надо будет делать или как-то обрабатывать-пересылать. Если требуется получить только одно единственное значение, то можете обойтись dynamic. Но конкретно в вашем случае класс не поможет, так как достаточно странный JSON и я бы сказал, что не совсем валидный. Но выдернуть значение можно - (используем, как уже подсказали выше, Newtonsoft.NET)
var updates = (JContainer)JObject.Parse(json)["updates"];

dynamic results = updates.Descendants()
     .OfType<JObject>()
     .Where(x => x["source_text"] != null).FirstOrDefault();

Console.WriteLine(results.source_text);

PS: Сгененировать класс по JSON`у можно к примеру на json2csharp.com но по вашему примеру как раз и видно, что не особо класс тут поможет.
Ответ написан
Ответы на вопрос 2
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
В стандартной библиотеке C# есть целых два независимых механизма парсинга XML, однако сделать парсинг JSON авторы почему-то забыли.

Пользуюсь простым самописным механизмом, возможно и вам пригодится:
Какой есть эффективный и разумный способ парсинга JSON?
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы