2017-07-05 2 views
0

Je doute de la façon dont créer une classe pour recevoir la réponse de HttpWebResponse.lecture HttpwebResponse au format json

Le code que j'utilise pour recevoir une réponse JSON est:

using (var response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (var reader = new StreamReader(response.GetResponseStream())) 
      { 
       JavaScriptSerializer js = new JavaScriptSerializer(); 
       var objText = reader.ReadToEnd(); 
       ResJson myojb = (ResJson)js.Deserialize(objText, typeof(ResJson)); 
      } 
     } 

JSON que je reçois est:

{ 
"name": "Rube Goldberg Machine Stage 1", 
"published": true, 
"description": "<p>.STEP Version\n<br /><br><a href=\"http://grabcad.com/cadfiles/rube-goldberg-experiment\">Rube Goldberg Experiment</a></p>", 
"raw_description": ".STEP Version\r\nhttp://grabcad.com/cadfiles/rube-goldberg-experiment", 
"cached_slug": "rube-goldberg-machine-stage-1", 
"created_at": "2011-04-06T21:58:06Z", 
"updated_at": "2017-05-02T07:44:08Z", 
"preview_image": "https://d2t1xqejof9utc.cloudfront.net/screenshots/pics/08d3763d43243a1a5f88c89dbfb8910c/card.jpg", 
"image_missing_url": "https://d2t1xqejof9utc.cloudfront.net/screenshots/pics/missing_small.png", 
"likes_count": 9, 
"downloads_count": 116, 
"comments_count": 1, 
"contentfiles_count": 3, 
"top_comments_count": 1, 
"video_link": "https://youtu.be/paDE3KO7eb0", 
"author": { 
    "name": "Scott Bruins", 
    "cached_slug": "scott.bruins", 
    "avatar": "https://d2t1xqejof9utc.cloudfront.net/members/avatars/320/feed.gif?1316795450" 
}, 
"tags": [ 
    "machine", 
    "rube", 
    "goldberg", 
    "crowdcad" 
], 
"softwares": [ 
    { 
     "name": "Other", 
     "cached_slug": "other" 
    }, 
    { 
     "name": "STL", 
     "cached_slug": "stl" 
    }, 
    { 
     "name": "Rendering", 
     "cached_slug": "rendering" 
    } 
] 
} 

Lors de la création du ResJson classe Je ne peux pas comprendre comment les logiciels jeu type de variable.

Comment devrait-il être déclaré?

Répondre

0
public class Software 
{ 
    [JsonProperty("name")] 
    public string Name {get;set;} 

    [JsonProperty("cached_slug")] 
    public string CachedSlug {get;set;} 
} 

Et puis dans votre ResJson:

{ 
    ... 
    [JsonProperty("softwares")] 
    public List<Software> Softwares {get;set;} 
    ... 
}