Игнорирование пустых полей в Json.net

У меня есть некоторые данные, которые я должен сериализовать в JSON. Я использую JSON.NET. Моя структура кода похожа на это:

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

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

Проблема в том, что мой вывод JSON должен иметь ТОЛЬКОField1 ИЛИ ЖЕField2 ИЛИ ЖЕField3 - это зависит от того, какое поле используется (то есть не ноль). По умолчанию мой JSON выглядит так:

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

Я знаю, что могу использоватьNullValueHandling.Ignore, но это дает мне JSON, который выглядит так:

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

И что мне нужно, это:

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

Есть ли простой способ добиться этого?

Ответы на вопрос(2)

Ваш ответ на вопрос