public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) { switch (reader.TokenType) { case JsonToken.Null: return(new BoolBinParams()); case JsonToken.Boolean: bool boolValue = serializer.Deserialize <bool>(reader); return(new BoolBinParams { Bool = boolValue }); case JsonToken.StartObject: BinParams objectValue = serializer.Deserialize <BinParams>(reader); return(new BoolBinParams { BinParams = objectValue }); } throw new Exception("Cannot unmarshal type BoolBinParams"); }
public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer) { switch (reader.TokenType) { case JsonToken.Null: return(new FluffyBin()); case JsonToken.Boolean: bool boolValue = serializer.Deserialize <bool>(reader); return(new FluffyBin { Bool = boolValue }); case JsonToken.String: case JsonToken.Date: string stringValue = serializer.Deserialize <string>(reader); if (stringValue == "binned") { return(new FluffyBin { Enum = BinEnum.Binned }); } break; case JsonToken.StartObject: BinParams objectValue = serializer.Deserialize <BinParams>(reader); return(new FluffyBin { BinParams = objectValue }); } throw new Exception("Cannot unmarshal type FluffyBin"); }