9

I have follow code which request from web

StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.bigflix.com/BIGFlixApi.do?parameter=getProductType&partnerID=17&uniqueID=54325345435&timestamp=131286916367&digest=bf53cae8f364cfc1d796489d09e4cfd&nbsp&nbsp<br>");
HttpWebResponse responce = (HttpWebResponse)request.GetResponse();
Stream resstream = responce.GetResponseStream();
string tempString = null;
int count = 0;
do
{
    count = resstream.Read(buf, 0, buf.Length);
    if (count != 0)
    {
        tempString = Encoding.ASCII.GetString(buf, 0, count);
        sb.Append(tempString);
    }
}
while (count > 0);
{
    Response.Write(sb.ToString() + "<br/><br/>");
    // string[] val = sb.ToString().Split('"');
}

After the run this code i will get this type of json

[
    { "id": 23, "name": "Video Clips" }, 
    { "id": 15, "name": "Deleted Scenes" }, 
    { "id": 9, "name": "Music Albums" }, 
    { "id": 7, "name": "Trailers" }, 
    { "id": 18, "name": "Short Films" }, 
    { "id": 21, "name": "Movie Clips" }, 
    { "id": 1, "name": "Movies " }, 
    { "id": 4, "name": "Plays" }, 
    { "id": 22, "name": "Scenes" }, 
    { "id": 2,  "name": "TV Show" }, 
    { "id": 5, "name": "Kids" }, 
    { "id": 16, "name": "Interviews" }, 
    { "id": 11, "name": "Film Songs" }, 
    { "id": 14, "name": "Making of Movie" }
]

Now i want deserialize this in asp.net(c#)
I tried to get a proper answer but didn't get.

Please advice.

0

2 Answers 2

12

Create a class called FromFlix inseide App_Code like this

public class FromFlix
{
    public string ID { get; set; }
    public string Name { get; set; }
}

Now after the end of your while loop, do this.

JavaScriptSerializer ser = new JavaScriptSerializer();
var response = ser.Deserialize<IList<FromFlix>>(sb.ToString());

The response is a List<FromFlix>, that is, a generic list of type FromFlix
This is how you should use it.

StringBuilder sb = new StringBuilder();
byte[] buf = new byte[8192];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.bigflix.com/BIGFlixApi.do?parameter=getProductType&partnerID=17&uniqueID=54325345435&timestamp=131286916367&digest=bf53cae8f364cfc1d796489d09e4cfd&nbsp&nbsp<br>");
HttpWebResponse responce = (HttpWebResponse)request.GetResponse();
Stream resstream = responce.GetResponseStream();
string tempString = null;
int count = 0;
do
{
    count = resstream.Read(buf, 0, buf.Length);
    if (count != 0)
    {
        tempString = Encoding.ASCII.GetString(buf, 0, count);
        sb.Append(tempString);
    }
}
while (count > 0);
JavaScriptSerializer ser = new JavaScriptSerializer();
List<FromFlix> response = ser.Deserialize<List<FromFlix>>(sb.ToString());
foreach (var item in response)
{
    Response.Write("ID: " + item.ID + "&" + "Name: " + item.Name + "<br/>");
}

Hope this helps.

Sign up to request clarification or add additional context in comments.

8 Comments

sir it's give error Error 48 Cannot implicitly convert type 'System.Collections.Generic.IList<Class1>' to 'string'
what did you do after this line?
after this i write Response.Write(Responce);
just copy paste my code and check pal. its working here. sigh... :)
This is a comment on an old post, but you can simply getting the response stream by doing "using (StreamReader sr = new StreamReader(webResponse.GetResponseStream())) { json = sr.ReadToEnd(); }"
|
4

You can use the JavaScriptSerializer type to serialize and deserialize JSON data.

var serializer = new JavaScriptSerializer();
var deserialized = serializer.Deserialize<TheTypeToWhichJSONWillMap>(myJson);

EDIT:

I'm not sure of what problems you're having with this, but the following is a working example with the JSON string you provide:

static string TheJson = "...";

public class TheType
{
    public int id { get; set;}
    public string name { get; set; }
}

var serializer = new JavaScriptSerializer();
var deserialized = serializer.Deserialize<List<TheType>>(TheJson);

This leaves us with deserialized being an List<TheType> with 14 elements.

2 Comments

@Atul: What error does it give? Mr. Disappointment said he tested it and works.
hey any one help me please please

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.