C # DataContractJsonSerializer не работает, когда значение может быть массивом или отдельным элементом

Я использую DataContractJsonSerializer для синтаксического анализа строки json в иерархию объектов. Строка json выглядит так:

{
    "groups": [
        {
            "attributes": [
                {
                    "sortOrder": "1",
                    "value": "A"
                },
                {
                    "sortOrder": "2",
                    "value": "B"
                }
            ]
        },
        {
            "attributes": {
                "sortOrder": "1",
                "value": "C"
            }
        }
    ]
}

Как вы можете видеть дополнительное значение из "атрибутов" может быть массивом или отдельным элементом. Я нашел часть кода, в которой возникает проблема:

[DataContract]
public class ItemGroup
{
    [DataMember(Name="attributes")]
    public List<DetailItem> Items  { get; set; }
}

Это работает для первого, но не работает для второго.

Кто-нибудь может ответить на этот вопрос?

Thx

5
задан Marco 4 October 2011 в 12:09
поделиться