public static void Main()
var someHolderClass = SomeHolderClass.FromJson(jsonString);
foreach(var x in someHolderClass.Outputdata.Task0.TaskOItem){
Console.WriteLine(x.TaskName);
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json.Converters;
public partial class SomeHolderClass
[JsonProperty("Outputdata")]
public Outputdata Outputdata { get; set; }
public partial class Outputdata
public string Xmlns { get; set; }
[JsonProperty("@xmlns:xsi")]
public string XmlnsXsi { get; set; }
public Task0 Task0 { get; set; }
[JsonProperty("ERROR_O")]
public object ErrorO { get; set; }
public partial class Task0
[JsonProperty("TASK_O_ITEM")]
public TaskOItem[] TaskOItem { get; set; }
public partial class TaskOItem
[JsonConverter(typeof(ParseStringConverter))]
public long Code { get; set; }
[JsonProperty("TASK_NAME")]
public string TaskName { get; set; }
public partial class SomeHolderClass
public static SomeHolderClass FromJson(string json) => JsonConvert.DeserializeObject<SomeHolderClass>(json, Whatever.Converter.Settings);
public static class Serialize
public static string ToJson(this SomeHolderClass self) => JsonConvert.SerializeObject(self, Whatever.Converter.Settings);
internal static class Converter
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
internal class ParseStringConverter : JsonConverter
public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?);
public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
if (reader.TokenType == JsonToken.Null) return null;
var value = serializer.Deserialize<string>(reader);
if (Int64.TryParse(value, out l))
throw new Exception("Cannot unmarshal type long");
public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
if (untypedValue == null)
serializer.Serialize(writer, null);
var value = (long)untypedValue;
serializer.Serialize(writer, value.ToString());
public static readonly ParseStringConverter Singleton = new ParseStringConverter();