反序列化嵌套JSON

ll

需要额外的一双眼睛才能看到我在这里做错了。非常感谢您的帮助。(包括批评)我对Json还是陌生的,所以请放轻松。

虽然只是在使用BandsInTown API,但我发现反序列化此json数据很奇怪。

我不确定在此处粘贴Json结果的最佳方法是什么,因此请单击下面的链接以查看数据。

https://app.bandsintown.com/events/just_announced?location=San+Francisco%2C+CA&radius=75&per_page=15&authenticate=false

这就是我想要做的

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对象反序列化。

我在这里做错了什么?本质上,我想做的就是将事件作为对象列表,仅此而已。

阿米特·库玛·戈什(Amit Kumar Ghosh)

在这里工作正常:

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所有内容都PopularEventsList<PopularEvents>@ Me.Name所提到的无关。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章