Анализ JSON и получение строки - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь получить элемент для печати browser_download_url из JSON https://api.github.com/repos/MyBotRun/MyBot/releases/latest

. Он не будет печатать browser_download_url

public class Asset
{
 public string browser_download_url { get; set; }
}


wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36Accept");             
var json = wc.DownloadString(@"https://api.github.com/repos/MyBotRun/MyBot/releases/latest");
if (json.Contains("browser_download_url"))
{
  Asset asset = JsonConvert.DeserializeObject<Asset>(json);
  Console.WriteLine(asset.browser_download_url);
}

1 Ответ

2 голосов
/ 12 июня 2019

JSON в URL-адресе, на который вы ссылаетесь, не соответствует классу Asset, который вы пытаетесь десериализовать.

Я бы рекомендовал использовать инструмент типа quicktype.io и вставить туда свой JSON, и он сгенерирует классы C # для вас.

После копирования этого примера класса вы можете использовать следующий код:

var asset = Asset.FromJson(json);

Console.WriteLine(asset.AssetElement[0].BrowserDownloadUrl);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...