Ignorando campos nulos no Json.net

Tenho alguns dados que tenho que serializar para JSON. Estou usando o JSON.NET. Minha estrutura de código é semelhante a esta:

public struct structA
{
    public string Field1;
    public structB Field2;
    public structB Field3;
}

public struct structB
{
    public string Subfield1;
    public string Subfield2;
}

O problema é que minha saída JSON precisa ter SOMENTEField1 ORField2 ORField3 - depende de qual campo é usado (ou seja, não nulo). Por padrão, meu JSON fica assim:

{
    "Field1": null,
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
    "Field3": {"Subfield1": null, "Subfield2": null},
}

Sei que posso usarNullValueHandling.Ignore, mas isso me dá um JSON assim:

{
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
    "Field3": {}
}

E o que eu preciso é isso:

{
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
}

Existe uma maneira simples de conseguir isso?

questionAnswers(4)

yourAnswerToTheQuestion