Question

J'écris une application monotouch Helloworld pour utiliser ServiceStack pour consommer JSON et avoir une question liée en deux parties.

Mon test JSON est: https://raw.github.com/currencybot/open-exchange-rites/master/latest.json

Dans mon objet DTO, comment utiliser différentes propriétés nommées qui mappent les éléments JSON?

J'ai cela, et cela fonctionne, mais je veux utiliser différents noms de champs?

public class Currency
{
    public string disclaimer { get; set; }
    public string license { get; set; }
    public string timestamp  { get; set; }
}

Et comment ajouter la collection de tarifs dans mon DTO de ce JSON?

"rates": {
    "AED": 3.6731,
    "AFN": 48.330002,
    "ALL": 103.809998,
     ETC...
Était-ce utile?

La solution

ServiceStack a une API JSON Parser géniale courante qui facilite le travail contre votre modèle existant sans avoir à utiliser la sérialisation de base "Contrat". Cela devrait vous aider à démarrer:

public class Rates {
    public double AED { get; set; }
    public double AFN { get; set; }
    public double ALL { get; set; }
}

public class Currency {
    public string disclaimer { get; set; }
    public string license { get; set; }
    public string timestamp  { get; set; }
    public Rates CurrencyRates { get; set; }
}

...

var currency = new Currency();
currency.CurrencyRates = JsonObject.Parse(json).ConvertTo(x => new Currency{
    disclaimer   = x.Get("disclaimer"),
    license = x.Get("license"),
    timestamp = x.Get("timestamp"),
    CurrencyRates = x.Object("rates").ConvertTo(r => new Rates {
        AED = x.Get<double>("AED"),
        AFN = x.Get<double>("AFN"),
        ALL = x.Get<double>("ALL"),
    })
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top