Konwertowanie właściwości / tokenów JSON.NET JObject na klucze słownikowe

Używam JSON.NET do analizowania odpowiedzi JSON po stronie serwera openexhangerates.org za pomocą .NET. Odpowiedź zawiera zagnieżdżony obiekt („rate”), który ma długą listę właściwości numerycznych:

    {
    "disclaimer": "Exchange rates provided for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability, or fitness for any purpose; use at your own risk. Other than that, have fun! Usage subject to acceptance of terms: http://openexchangerates.org/terms/",
    "license": "Data sourced from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given. Usage subject to acceptance of license agreement: http://openexchangerates.org/license/",
        "timestamp": 1357268408,
        "base": "USD",
        "rates": {
            "AED": 3.673033,
            "AFN": 51.5663,
            "ALL": 106.813749,
            "AMD": 403.579996,
            etc...
        }
    }

Nazwy nieruchomości odpowiadają typowi waluty (np. „USD”). Muszę założyć, że lista właściwości może się zmieniać w czasie, więc chcę przekonwertować obiekt na słownik zamiast odpowiadającego mu obiektu C #.

Więc zamiast deserializacji obiektu JSON na coś takiego:

class Rates
{
public decimal AED; // United Arab Emirates Dirham
public decimal AFN; // Afghan Afghani
public decimal ALL; // Albanian Lek
public decimal AMD; // Armenian Dram
// etc...
}

Chcę skończyć z tym:

Dictionary<string,decimal>() {{"AED",0.2828},{"AFN",0.3373},{"ALL",2.2823},{"AMD",33.378} // etc...};

Jak to zrobić, zaczynając od łańcucha odpowiedzi lub z JObject utworzonego przez wywołanie JObject.Parse (responseString)?

questionAnswers(3)

yourAnswerToTheQuestion