I have some data that I have to serialize to JSON. I'm using JSON.NET. My code structure is similar to this:
public struct structA
{
    public string Field1;
    public structB Field2;
    public structB Field3;
}
public struct structB
{
    public string Subfield1;
    public string Subfield2;
}
Problem is, my JSON output needs to have ONLY Field1 OR Field2 OR Field3 - it depends on which field is used (i.e. not null). 
By default, my JSON looks like this:
{
    "Field1": null,
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
    "Field3": {"Subfield1": null, "Subfield2": null},
}
I know I can use NullValueHandling.Ignore, but that gives me JSON that looks like this:
{
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
    "Field3": {}
}
And what I need is this:
{
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
}
Is there simple way to achieve this?
 
     
     
     
     
    