Question

Je suis en train d'utiliser RestSharp ( http://restsharp.org/ ) dans un Windows Phone 7 projet, mais je vais avoir un problème, il semble à la bibliothèque Newtonsoft Json.NET que les utilisations RestSharp. Quand je suis en train d'exécuter mon code comme ceci:

_restClient.ExecuteAsync<Model.Song>(restRequest, (response) =>
{
    if (response.StatusCode == HttpStatusCode.OK) { }
    else { }
});

Je reçois l'erreur suivante:

Could not load type 'Newtonsoft.Json.Linq.JArray' from assembly 'Newtonsoft.Json.Compact, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30AD4FE6B2A6AEED'.

Newtonsoft.Json.Compact.dll est copié dans le dossier Bin de mon application Windows Phone 7, donc je suppose qu'il se déploie à l'appareil, mais en quelque sorte il ne sera pas le charger. Quelqu'un at-il expérience / résolu quelque chose de similaire? Merci.


Comme demandé, un exemple de JSON: [{"type":"Song","id":60097,"title":"A Place Where You Belong","artist":{"type":"Artist","id":17,"nameWithoutThePrefix":"Bullet For My Valentine","useThePrefix":false}}]

Et les classes:

[DataContract]
public class Song
{
    [DataMember(Name = "id")]
    public int Id { get; set; }

    [DataMember(Name = "title")]
    public string Title { get; set; }

    [DataMember(Name = "artist")]
    public Artist Artist { get; set; }
}

[DataContract]
public class Artist
{
    [DataMember(Name = "id")]
    public int Id { get; set; }

    [DataMember(Name = "nameWithoutThePrefix")]
    public string Name { get; set; }

    [DataMember(Name = "useThePrefix")]
    public bool UsePrefix { get; set; }
}
Était-ce utile?

La solution

Vous n'avez pas besoin l'un des attributs de [DataMember], ils ne sont pas utilisés par RestSharp.

Depuis la JSON retournée est un tableau, vous devez désérialiser que pour un tableau:

client.ExecuteAsync<List<Song>>(request, callback);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top