需要额外的一双眼睛才能看到我在这里做错了。非常感谢您的帮助。(包括批评)我对Json还是陌生的,所以请放轻松。
虽然只是在使用BandsInTown API,但我发现反序列化此json数据很奇怪。
我不确定在此处粘贴Json结果的最佳方法是什么,因此请单击下面的链接以查看数据。
这就是我想要做的
HttpResponseMessage response = await HttpManager.BitRequestManager.SendRequest(uri);
var jsonMessage = await HttpManager.BitResponseManager.ReadResponse(response);
Here's my models,
public class PopularEvents
{
[JsonProperty("data")]
public Data Data;
}
public class Data
{
public List<Events> events { get; set; }
}
public class Events
{
public string id { get; set; }
public string artist_event_id { get; set; }
public string title { get; set; }
public string datetime { get; set; }
public string formatted_datetime { get; set; }
public string formatted_location { get; set; }
public string ticket_url { get; set; }
public string ticket_type { get; set; }
public string ticket_status { get; set; }
public string on_sale_datetime { get; set; }
public string facebook_rsvp_url { get; set; }
public string description { get; set; }
//public List<Artist> artists { get; set; }
//public Venue venue { get; set; }
public string facebook_event_id { get; set; }
public int rsvp_count { get; set; }
public int? media_id { get; set; }
}
var events = (List<PopularEvents>)JsonConvert.DeserializeObject(jsonMessage, typeof(List<PopularEvents>));
当我这样做时,出现如下所示的错误,
类型'Newtonsoft.Json.JsonSerializationException'的第一次机会异常发生在Newtonsoft.Json.DLL中,无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型'System.Collections.Generic.List`1 [BandsInTown.Models.PopularEvents]',因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。要解决此错误,可以将JSON更改为JSON数组(例如[1,2,3]),也可以更改反序列化类型,使其成为普通的.NET类型(例如,不像整数这样的原始类型,也不像这样的集合类型)数组或列表),可以从JSON对象反序列化。还可以将JsonObjectAttribute添加到类型中,以强制其从JSON对象反序列化。
我在这里做错了什么?本质上,我想做的就是将事件作为对象列表,仅此而已。
在这里工作正常:
var res = new HttpClient().GetAsync("https://app.bandsintown.com/events/just_announced?location=San+Francisco%2C+CA&radius=75&per_page=15&authenticate=false").Result;
var t = JsonConvert.DeserializeObject<PopularEvents>(new StreamReader(res.Content.ReadAsStreamAsync().Result).ReadToEnd());
基本上,json
所有内容都PopularEvents
与List<PopularEvents>
@ Me.Name所提到的无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句