I have doubt about how creating a class for receiving the response from HttpWebResponse.
The code I use for receiving a json response is:
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 ));
}
}
The json I receive is:
{
"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"
}
]
}
When creating the ResJson class I can not figure out how set softwares variable type.
How should it be declared?
public class Software
{
[JsonProperty("name")]
public string Name {get;set;}
[JsonProperty("cached_slug")]
public string CachedSlug {get;set;}
}
And then in your ResJson
:
{
...
[JsonProperty("softwares")]
public List<Software> Softwares {get;set;}
...
}