public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            JObject jobject = JObject.Load(reader);


            Gw2StatsRatingsObject obj = new Gw2StatsRatingsObject();

            foreach (var kvp in jobject)
            {
                if (kvp.Key == "retrieve_time")
                {
                    obj.RetrieveTime = ((DateTime)kvp.Value).ToUniversalTime();
                }
                else if (kvp.Key == "results")
                {
                    obj.Results = (int)kvp.Value;
                }
                else
                {
                    var region = kvp.Value.ToObject <Gw2StatsRatingsRegion>(serializer);
                    obj.Ratings.Add(kvp.Key, region.Ratings);
                }
            }
            return(obj);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {

            JObject jobject = JObject.Load(reader);


            Gw2StatsRatingsObject obj = new Gw2StatsRatingsObject();

            foreach (var kvp in jobject)
            {
                if (kvp.Key == "retrieve_time") obj.RetrieveTime = ((DateTime) kvp.Value).ToUniversalTime();
                else if (kvp.Key == "results") obj.Results = (int) kvp.Value;
                else
                {
                    var region = kvp.Value.ToObject<Gw2StatsRatingsRegion>(serializer);
                    obj.Ratings.Add(kvp.Key, region.Ratings);
                }
            }
            return obj;
        }