У меня есть автогенерируемые xmls, где некоторые части xml могут иметь несколько строк, а некоторые - нет. В результате, если есть одна строка, возвращается один json node, и если у меня есть несколько строк, возвращается массив с json-узлами.
xmls может выглядеть так:
<List>
    <Content>
        <Row Index="0">
            <Title>Testing</Title>
            <PercentComplete>0</PercentComplete>
            <DueDate/>
            <StartDate/>
        </Row>
    </Content>
</List>
Или с несколькими строками
<List>
    <Content>
        <Row Index="0">
            <Title>Update Documentation</Title>
            <PercentComplete>0.5</PercentComplete>
            <DueDate>2013-01-31 00:00:00</DueDate>
            <StartDate>2013-01-01 00:00:00</StartDate>
        </Row>
        <Row Index="1">
            <Title>Write jQuery example</Title>
            <PercentComplete>0.05</PercentComplete>
            <DueDate>2013-06-30 00:00:00</DueDate>
            <StartDate>2013-01-02 00:00:00</StartDate>
        </Row>
    </Content>
</List>
При сериализации их в JSON с помощью
JsonConvert.SerializeXmlNode(xmldoc, Formatting.Indented);
Первый xml становится этим
{
    "List": {
        "Content": {
            "Row": {
                "@Index": "0",
                "Title": "Testing",
                "PercentComplete": "0",
                "DueDate": null,
                "StartDate": null
            }
        }
    }
}
И второе это
{
    "List": {
        "Content": {
            "Row": [{
                "@Index": "0",
                "Title": "Update Documentation",
                "PercentComplete": "0.5",
                "DueDate": "2013-01-31 00:00:00",
                "StartDate": "2013-01-01 00:00:00"
            }, {
                "@Index": "1",
                "Title": "Write jQuery example",
                "PercentComplete": "0.05",
                "DueDate": "2013-06-30 00:00:00",
                "StartDate": "2013-01-02 00:00:00"
            }]
        }
    }
}
Как ясно видно, строка на втором является массивом, который должен быть, но не первым. Существует ли какое-либо известное обходное решение для такого рода проблем или мне нужно выполнить проверку в моем интерфейсе, получая JSON (это было бы немного проблематично, поскольку структуры очень динамичны). Лучше всего было бы, если бы там, где любой способ принудить json.net всегда возвращать массивы.

