public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) { switch (reader.TokenType) { case JsonToken.Boolean: bool boolValue = serializer.Deserialize <bool>(reader); return(new Line { Bool = boolValue }); case JsonToken.StartObject: OverlayMarkDef objectValue = serializer.Deserialize <OverlayMarkDef>(reader); return(new Line { OverlayMarkDef = objectValue }); } throw new Exception("Cannot unmarshal type Line"); }
public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) { switch (reader.TokenType) { case JsonToken.Boolean: bool boolValue = serializer.Deserialize <bool>(reader); return(new PointUnion { Bool = boolValue }); case JsonToken.String: case JsonToken.Date: string stringValue = serializer.Deserialize <string>(reader); if (stringValue == "transparent") { return(new PointUnion { Enum = PointEnum.Transparent }); } break; case JsonToken.StartObject: OverlayMarkDef objectValue = serializer.Deserialize <OverlayMarkDef>(reader); return(new PointUnion { OverlayMarkDef = objectValue }); } throw new Exception("Cannot unmarshal type PointUnion"); }