new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(results)
will not work with complex objects
you need to create objects
for example, this is the IManage Login JSON
[DataContract]
public class IManageUser
{
[DataMember(Name = "email")]
public string email { get; set; }
[DataMember(Name = "full_name")]
public string full_name { get; set; }
[DataMember(Name = "user_id")]
public string user_id { get; set; }
}
[DataContract]
public class IManageLoginInfo
{
[DataMember(Name = "X-Auth-Token")]
public string X_Auth_Token { get; set; }
[DataMember(Name = "max_age")]
public int max_age { get; set; }
[DataMember(Name = "persona")]
public string persona { get; set; }
[DataMember(Name = "user")]
public IManageUser user { get; set; }
}
then you could do something like this:
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());
results = sr.ReadToEnd();
sr.Close();
IManageLoginInfo info = null;
using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(results)))
{
DataContractJsonSerializer
serializer = new DataContractJsonSerializer(typeof(IManageLoginInfo));
info = (IManageLoginInfo)serializer.ReadObject(ms);
}
this.token =
info.X_Auth_Token;
No comments:
Post a Comment