web-dev-qa-db-ja.com

Json.Netでintをboolに変換する

私はWebサービスを呼び出しており、boolフィールドに返されるデータは0または1ですが、私のモデルではSystem.Boolを使用しています。

Json.Netでは、モデルの0/1をブール値にキャストできますか?

現在、エラーが発生しています

Newtonsoft.Json.JsonSerializationException:値「0」を「System.Boolean」型に変換する際のエラー

どんな助けでも素晴らしいです!!

44
Diver Dan

コンバーターを作成してしまいました

 public class BoolConverter : JsonConverter
{
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        writer.WriteValue(((bool)value) ? 1 : 0);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return reader.Value.ToString() == "1";
    }

    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(bool);
    }
}

次に、私のモデル内で

 [JsonConverter(typeof(BoolConverter))]
    public bool active { get; set; }

これが他の誰かを助けることを願っています

102
Diver Dan