例如,我想显示此API内容
Console.WriteLine(data.Title)
将显示
"Lembethe leading by example"
看看我的代码
using (var webClient = new System.Net.WebClient())
{
var json = webClient.DownloadString(@"url");
var data = JsonConvert.DeserializeObject<Result>(json);
Console.WriteLine(data.Title);
}
这些是我的1级以下课程
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; }
}
这些是我2班以下的班级
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; }
}
我在哪里出错了,它甚至没有给我错误或输出?
答案 0 :(得分:1)
由于JSON数据格式result
是一个数组,因此您可以尝试使用此示例来制作它。
您可以在Visual Studio中使用Web Essentials,使用“编辑”>“选择性粘贴”>将JSON粘贴为类,可以更轻松地了解Json与模型之间的关系。
如果您无法使用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:....");
var data = JsonConvert.DeserializeObject<RootObject>(json);
Console.WriteLine(data.result[0].title);
答案 1 :(得分:0)
由于使用了错误的解析模型,因此可以使用Model generator
将此代码用于以下型号
Unshelve
旁注:-更喜欢使用HttpClient而不是WebClient,Here是一个很好的例子
型号:-
var data = JsonConvert.DeserializeObject<Root>(json);