2011-01-04 9 views
5

Dla niektórych punktów końcowych SimpleGeo.com zwraca coś takiego:Jak deserializować json z zagnieżdżonymi słownikami?

{ 
    "geometry":{ 
     "type":"Point", 
     "coordinates":[ 
      -122.421583, 
      37.795027  
     ]   
    }, 
    "type":"Feature", 
    "id":[email protected], 
    "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/[email protected], 
     "address":"1900 Polk St", 
     "owner":"simplegeo", 
     "postcode":"94109", 
     "classifiers":[ 
      { 
       "category":"Restaurant", 
       "type":"Food & Drink", 
       "subcategory":""     
      }    
     ]   
    }  
} 

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

Teraz mam mały problem z deserializacją części "właściwości". Jeśli używam np. typ słownika, który konwertuje go do ładnego słownika, ale wartość "klasyfikatorów" to tylko jeden ciąg {}.

Czy jest jakiś sposób, aby powiedzieć json.net, aby deserializować podparary na inny słownik itp.? Zasadniczo istnieje pewna liczba zwykłych kluczy/wartości w tym zwrocie, ale wiem, że może istnieć coś więcej niż tylko pod-tablica "klasyfikatorów" (zobacz "znaczniki"), i może głębokość idzie jeszcze dalej w wartościach. ..

Więc w zasadzie zastanawiałem się, jak poprawnie deserializować część właściwości? Jakieś sugestie? Nie mam nic przeciwko napisaniu własnego JsonConvertera, ale może istnieje już sposób, który działa bez niego.

Odpowiedz