Jeyhun
Jeyhun

Reputation: 469

Deserialize json into class in C#

json="{\n \"kind\": \"plus#person\",
    \n \"etag\": \"\\\"GjejyguyfTE/pdfBI8xyufoiuh9bOLZ8VyG_8\\\"\",
    \n \"gender\": \"male\",
    \n \"emails\": [\n  {\n   \"value\": \"[email protected]\",\n   \"type\": \"account\"\n  }\n ],
    \n \"objectType\": \"person\",
    \n \"id\": \"xxxxxxxxxxxxxxx\",
    \n \"displayName\": \"XXXXXXXXX XXXXXXX\",
    \n \"name\": {\n  \"familyName\": \"XXXXXX\",\n  \"givenName\": \"XXXXXX\"\n },
    \n \"url\": \"https://plus.google.com/xxxxxxxxxxxxxxx\",
    \n \"image\": {\n  \"url\": \"https://lh3.googleusercontent.com/-XdUWA/AAAAAAI/AAbbbbAA/42hhscbv5M/photo.jpg?sz=70\"\n },
    \n \"isPlusUser\": true,
    \n \"language\": \"en\",
    \n \"ageRange\": {\n  \"min\": 21\n },
    \n \"circledByCount\": 0,
    \n \"verified\": false\n}\n"



 public class GoogleUser
    {
        public string kind { get; set; }
        public string etag { get; set; }
        public string gender { get; set; }
        public Email[] emails { get; set; }
        public string objectType { get; set; }
        public string id { get; set; }
        public string displayName { get; set; }
        public Name name { get; set; }
        public string url { get; set; }
        public Image image { get; set; }
        public bool isPlusUser { get; set; }
        public string language { get; set; }
        public AgeRange ageRange { get; set; }
        public int circledByCount { get; set; }
        public bool verified { get; set; }
    }

    public class Name
    {
        public string familyName { get; set; }
        public string givenName { get; set; }
    }

    public class Email
    {
        public string value { get; set; }
        public string type { get; set; }
    }
    public class Image 
    {
        public string url { get; set; } 
    }
    public class AgeRange 
    {
        public int min { get; set; }
    }





GoogleUser  user = new JavaScriptSerializer().Deserialize<GoogleUser>(json);

I am developing in C# 4.0 I use login with google+ button in my project. I would like to get user's by using access_token. I can get them as json filen. Then I would like to copy them my GoogleUser class. I don't get error, But user always equal null. By this way, yesterday I could get user's data, but not today.

What can be my problem ?

<code>string a</code> is not <code>null</code>, it is my <code>json</code> file, but <code>user</code> is <code>null</code>

Upvotes: 1

Views: 194

Answers (1)

Derek
Derek

Reputation: 8763

Can you try:

user =  new JavaScriptSerializer().Deserialize<A>( a );

since you say "a" has the value in the string. Maybe the problem is that you are calling ReadToEnd twice?

Upvotes: 2

Related Questions