using System.Collections.Generic;
public static void Main()
var deserialized = JsonConvert.DeserializeObject<List<MyData>>(JsonStr, new SByteConverter());
Console.WriteLine(string.Join(", ", deserialized.Select(md => md.MuxControl.ToString())));
private IsSet __isset = new IsSet();
private sbyte _MuxControl;
get { return _MuxControl; }
set { __isset.MuxControl = true; this._MuxControl = value; }
public bool MuxControl { get; set; }
public class SByteConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(sbyte);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
if (reader.TokenType == JsonToken.Integer)
long val = (long)reader.Value;
if (val >= -128 && val <= 255)
return unchecked((sbyte)val);
throw new JsonSerializationException("Value was out of range for an sbyte: " + val);
throw new JsonSerializationException("Unexpected token type: " + reader.TokenType);
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
writer.WriteRawValue("0x" + ((sbyte)value).ToString("X2"));