Разбирать объект JSON, не являющийся массивом, как массив с помощью Json.net

Я работаю с внешним API, который возвращает свойство либо в виде массива, либо в виде объекта, в зависимости от количества. Каков хороший способ справиться с этим?

Возврат в виде массива:

{
    "contacts": {
        "address": [
            {
                "id": "47602070",
                "type": "Work",
                "street": "MyStreet",
                "city": "MyCity",
                "zip": "12345",
                "country": "USA"
            },
            {
                "id": "47732816",
                "type": "GPS",
                "street": "50.0,30.0"
            }
        ]
    }
}

Возврат в виде объекта:

{
    "contacts": {
        "address": {
            "id": "47602070",
            "type": "Work",
            "street": "MyStreet",
            "city": "MyCity",
            "zip": "12345",
            "country": "USA"
        }
    }
}

Я думаю, что обходной путь будет заключаться в использовании пользовательского десериализатора и возвращении массива длины 1 для случая объекта и десериализации по умолчанию для случая массива, но я пока не знаю, как это сделать.

Я попытался десериализовать объект в массив и надеялся, что Json.net справится с этим случаем за меня, но без костей.

6
задан angularsen 11 June 2012 в 18:00
поделиться