using System.Globalization;
using Newtonsoft.Json.Converters;
public static void Main()
string input = "{\"response\": [{ \"success\": { \"foo\": \"not working\", } } ]}";
TopGameDataResponse topGameDataResponse = TopGameDataResponse.FromJson(input);
Console.WriteLine(topGameDataResponse.Response[0].Success);
public class TopGameDataResponse : BaseServerResponse
public new static TopGameDataResponse FromJson(string json) => JsonConvert.DeserializeObject<TopGameDataResponse>(json, Converter.Settings);
public new class Success : BaseServerResponse.Success
public partial class BaseServerResponse
[JsonProperty("response")]
public ResponseObj[] Response
[JsonProperty("success")]
public abstract partial class BaseServerResponse
public static BaseServerResponse FromJson(string json) => JsonConvert.DeserializeObject<BaseServerResponse>(json, Converter.Settings);
internal static class Converter
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings{MetadataPropertyHandling = MetadataPropertyHandling.Ignore, DateParseHandling = DateParseHandling.None, Converters = {new IsoDateTimeConverter{DateTimeStyles = DateTimeStyles.AssumeUniversal}}};