Comment désérialiser une propriété JSON qui peut être deux types de données différents à l'aide de Json.NET

Je suis en utilisant Json.NET pour un projet que je suis en train de travailler sur.
À partir d'une API externe, je reçois JSON avec des propriétés qui sont des objets, mais quand ils sont vides 'false' est passé.

Par exemple:

data: {
    supplier: {
        id: 15,
        name: 'TheOne'
    }
}

Pourrait aussi être:

data: {
    supplier: false
}

Comment dois-je définir le fournisseur de biens, de telle sorte que le fournisseur sera désérialisé à un Fournisseur de l'objet ou la valeur null.

Maintenant j'ai:

public class Data {
   [JsonProperty("supplier")]
   public SupplierData Supplier { get; set; }
}
public class SupplierData {
    [JsonProperty("id")]
    public int Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}

Mais maintenant, lorsque vous tentez de désérialiser lorsque le fournisseur a une valeur 'false' il échoue.
Je voudrais que le Fournisseur de biens à null si la valeur JSON est "faux".

J'espère que quelqu'un sait comment faire cela. Merci.

source d'informationauteur Marc Selman