2012-05-04 3 views
1

Je suis en train d'analyser une réponse JSON provenant des services Web de Citrix. La réponse ressemble à ceciException JavaScriptDeserializer analyse de la réponse JSON

[{\"webinarKey\":123456,\"subject\":\"Subject\",\"description\":\"Webinar Description. \",\"organizerKey\":123456,\"times\":[{\"startTime\":\"2012-05-08T16:00:00Z\",\"endTime\":\"2012-05-08T17:00:00Z\"}],\"timeZone\":\"America/New_York\"}] 

Je modifié manuellement cette chaîne pour supprimer des informations d'identification, donc s'il y a une citation manquante ou quoi que ce soit il est sans rapport.

J'ai suivi l'exemple de cette réponse sur SO, mais je rencontre toujours une erreur.

Deserializing JSON result with Json & JavaScriptSerializer

public class Webinars { 
    public string webinarKey; 
    public string subject; 
    public string description; 
    public string organizerKey; 
    public WebinarTimes[] times; 
    public string timeZone; 
} 

public class WebinarTimes { 
    public string startTime; 
    public string endTime; 
} 

JavaScriptSerializer jss = new JavaScriptSerializer(); 
var foo = jss.Deserialize<Webinars>(JSON); 

je reçois l'erreur suivante: Type 'Web.Site.Webinars' is not supported for deserialization of an array.

+0

Si je ne me trompe pas, vous devez utiliser jss.Deserialize > (JSON) –

+0

@ClaudioRedi - que certainement aidé, résolu première erreur, maintenant nouveau erreur est 'WebinarTimes n'est pas pris en charge pour la désérialisation d'un tableau.' – mrtsherman

+0

@ClaudioRedi - fixe, si vous postez comme réponse, je vais accepter. A dû modifier 'Webinars' pour inclure' WebinarTimes' en tant que tableau. – mrtsherman

Répondre

2

Vous devez utiliser IList<Webinars> au lieu de Webinars

var foo = jss.Deserialize<IList<Webinars>>(JSON);