Как отображать значения JSON из API

Другой способ получить это сообщение - если вы случайно указали разные версии библиотеки appcompat в разных модулях. Вероятно, это произойдет, когда вы создадите новый модуль, так как Android Studio по умолчанию использует самую последнюю версию.

Для удобства работы в многомодульных проектах см .: В Gradle, как объявить общие зависимости в одном месте?

1
задан CDspace 13 July 2018 в 20:40
поделиться

2 ответа

Из-за формата данных JSON result - массив, вы можете попробовать этот образец, чтобы сделать это.

  • Вы можете использовать Web Essentials в Visual Studio, используйте Edit> Paste special> paste JSON as class, вы можете легче узнать отношение между Json и model.
  • Если вы не можете использовать Web Essentials , вы можете вместо этого http://json2csharp.com/ онлайн JSON в класс Model.

Model Посмотрите, как это.

public class Tag
{
    public string id { get; set; }
    public string name { get; set; }
    public string type { get; set; }
    public bool subscribed { get; set; }
}

public class Thumbnail
{
    public object small { get; set; }
    public object medium { get; set; }
    public object large { get; set; }
    public object original { get; set; }
}

public class Banner
{
    public string small { get; set; }
    public string medium { get; set; }
    public string large { get; set; }
    public string original { get; set; }
}

public class Result
{
    public List<Tag> tags { get; set; }
    public List<string> custom_tags { get; set; }
    public string id { get; set; }
    public string title { get; set; }
    public string blurb { get; set; }
    public string url { get; set; }
    public DateTime published_at { get; set; }
    public Thumbnail thumbnail { get; set; }
    public Banner banner { get; set; }
}

public class RootObject
{
    public List<Result> result { get; set; }
    public DateTime first { get; set; }
    public DateTime last { get; set; }
}

var json = webClient.DownloadString(@"https://campus-life-public-api-qa.azurewebsites.net/api/articles?limit=1");
 var data = JsonConvert.DeserializeObject<RootObject>(json);
 Console.WriteLine(data.result[0].title);
1
ответ дан D-Shih 17 August 2018 в 12:11
поделиться
  • 1
    Вы БОГ, Большое спасибо ... Я нахожусь на Mac ... что я могу использовать в качестве альтернативы Web Essentials? для MacOS – Komicon 13 July 2018 в 22:28
  • 2
    @Komicon Вы можете использовать json2csharp.com онлайн-сайт, я редактирую свой ответ – D-Shih 14 July 2018 в 07:21

Поскольку вы использовали неправильные модели Parsing, вы можете использовать Model generator

Использовать этот код ниже моделей

var data = JsonConvert.DeserializeObject<Root>(json);

Сторона примечания: - предпочитают использовать HttpClient вместо WebClient, Здесь является хорошим примером для этого

Модели: -

public partial class Root
{
    [JsonProperty("result")]
    public List<Result> Result { get; set; }

    [JsonProperty("first")]
    public DateTimeOffset First { get; set; }

    [JsonProperty("last")]
    public DateTimeOffset Last { get; set; }
}

public partial class Result
{
    [JsonProperty("tags")]
    public List<Tag> Tags { get; set; }

    [JsonProperty("custom_tags")]
    public List<string> CustomTags { get; set; }

    [JsonProperty("id")]
    public Guid Id { get; set; }

    [JsonProperty("title")]
    public string Title { get; set; }

    [JsonProperty("blurb")]
    public string Blurb { get; set; }

    [JsonProperty("url")]
    public string Url { get; set; }

    [JsonProperty("published_at")]
    public DateTimeOffset PublishedAt { get; set; }

    [JsonProperty("thumbnail")]
    public Banner Thumbnail { get; set; }

    [JsonProperty("banner")]
    public Banner Banner { get; set; }
}

public partial class Banner
{
    [JsonProperty("small")]
    public string Small { get; set; }

    [JsonProperty("medium")]
    public string Medium { get; set; }

    [JsonProperty("large")]
    public string Large { get; set; }

    [JsonProperty("original")]
    public string Original { get; set; }
}

public partial class Tag
{
    [JsonProperty("id")]
    public Guid Id { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("subscribed")]
    public bool Subscribed { get; set; }
}
0
ответ дан Mihir Dave 17 August 2018 в 12:11
поделиться
Другие вопросы по тегам:

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