Как десериализовать json с вложенными словарями?

Для некоторых конечных точек SimpleGeo.com возвращает примерно следующее:

{
    "geometry":{
        "type":"Point",
        "coordinates":[
            -122.421583,
            37.795027    
        ]          
    },
    "type":"Feature",
    "id":SG_5JkVsYK82eLj26eomFrI7S_37.795027_-122.421583@1291796505,
    "properties":{
        "province":"CA",
        "city":"San Francisco",
        "name":"Bell Tower",
        "tags":[],
        "country":"US",
        "phone":"+1 415 567 9596",
        "href": http://api.simplegeo.com/1.0/features/SG_5JkVsYK82eLj26eomFrI7S_37.795027_-122.421583@1291796505.json,
        "address":"1900 Polk St",
        "owner":"simplegeo",
        "postcode":"94109",
        "classifiers":[
            {
                "category":"Restaurant",
                "type":"Food & Drink",
                "subcategory":""                  
            }             
        ]          
    }     
}

(см. http://simplegeo.com/docs/api-endpoints/simplegeo-features#get-detailed-information ).

Теперь у меня возникла небольшая проблема с десериализацией части «свойства». Если я использую, например, тип Dictionary, он преобразует его в хороший словарь, но значение 'classifiers' - это всего лишь одна строка {}.

Есть ли способ указать json.net десериализовать подмассивы в еще один Словарь и т.д.? В основном в этом возврате содержится некоторое количество простых ключей / значений, но я знаю, что может быть больше, чем просто подмассив «классификаторов» (см. «Теги»), и, возможно, глубина в значениях еще больше. ..

Итак, в основном меня интересовало, как правильно десериализовать часть свойств? Какие-либо предложения? Я не против написать свой собственный JsonConverter, но, возможно, уже есть способ, который работает без него.

6
задан Jörg Battermann 4 January 2011 в 23:01
поделиться