Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert Json format Response from webservice

my web-service return json data as given below but i wanted is like as in 2nd CodeSnipts. my web-service and class as given below.

         {  "ShowID": 10107,
            "StartTime": "3:00 PM",
            "MovieID": 13,
            "Movie": "Bhaag Milkha Bhaag ",
            "Screen": "CDC SCreen2",
            "MediaPath": "bmb1_568962.jpg"
         },{  "ShowID": 115,
            "StartTime": "6:00 PM",
            "MovieID": 13,
            "Movie": "Bhaag Milkha Bhaag ",
            "Screen": "CDC SCreen2",
            "MediaPath": "bmb1_568962.jpg"
         },{  "ShowID": 110,
            "StartTime": "9:00 PM",
            "MovieID": 13,
            "Movie": "Bhaag Milkha Bhaag ",
            "Screen": "CDC SCreen2",
            "MediaPath": "bmb1_568962.jpg"
         }

but i want as

   {
        "MovieID": 13,
        "Movie": "Bhaag Milkha Bhaag ",
        "Screen": "CDC SCreen2",
        "MediaPath": "bmb1_568962.jpg",
        "ShowInfo": [
            {
                "ShowID": 10107,
                "StartTime": "3:00 PM"
            },
            {
                "ShowID": 115,
                "StartTime": "6:00 PM"
            },
            {
                "ShowID": 110,
                "StartTime": "9:00 PM"
            }
        ]
    }

my c# code for Webservice as

[WebMethod]
public string NowShowingGetList(DateTime ShowDate)
{
    HomeController obj = new HomeController();

    JavaScriptSerializer js = new JavaScriptSerializer();
    string retJSON = js.Serialize(obj.NowShowingGetList(ShowDate));
    return retJSON;
}

class as

public class NowShowingInfo
{
    public int ShowID { get; set; }
    public string StartTime { get; set; }
    public int MovieID { get; set; }
    public string Movie { get; set; }
    public string Screen { get; set; }
    public string MediaPath { get; set; }
}

here obj.NowShowingGetList(ShowDate) return List Thankyou in advance.

like image 284
user2641905 Avatar asked Aug 07 '13 07:08

user2641905


2 Answers

Make changes as per the entity

public class NowShowingInfo
{
    public List<ShowInfo> ShowInformation { get; set; }
    public int MovieID { get; set; }
    public string Movie { get; set; }
    public string Screen { get; set; }
    public string MediaPath { get; set; }
}

public class ShowInfo
{
    public int ShowID { get; set; }
    public string StartTime { get; set; }
}

make related changes in your webservice

like image 133
Nisarg Shah Avatar answered Nov 02 '22 07:11

Nisarg Shah


Infos are as

 public class ShowInfo
    {
        public int ShowID { get; set; }
        public string StartTime { get; set; }
    }
    public class NowShowing
    {
        public List<ShowInfo> ShowInfo { get; set; }
        public int MovieID { get; set; }
        public string Movie { get; set; }
        public string Screen { get; set; }
        public string MediaPath { get; set; }
    }

and

public List<NowShowing> NowShowingGetList(DateTime ShowDate)
    {            
        List<NowShowingInfo> objshowList = obj.NowShowingGetList(ShowDate);

        int movieID = 0;
        List<NowShowing> objShowingList = new List<NowShowing>();

        NowShowing obj2 = new NowShowing();
        ShowInfo objshowInfo = new ShowInfo();
        List<ShowInfo> objshowInfoList = new List<ShowInfo>();
        int count = 0;
        string Screen="";
        foreach (NowShowingInfo objs in objshowList)
        {
            if (movieID != objs.MovieID )
            {
                if (count != 0)
                {
                    obj2.ShowInfo = objshowInfoList;
                    objshowInfoList = new List<ShowInfo>();
                    objShowingList.Add(obj2);
                    count = 0;
                }
                obj2 = new NowShowing();
                obj2.MovieID = objs.MovieID;
                obj2.Movie = objs.Movie;
                obj2.Screen = objs.Screen;
                obj2.MediaPath = objs.MediaPath;

                if (count == 0)
                {
                    objshowInfo = new ShowInfo();
                    objshowInfo.ShowID = objs.ShowID;
                    objshowInfo.StartTime = objs.StartTime;
                    objshowInfoList.Add(objshowInfo);
                }

            }
            else
            {
                objshowInfo = new ShowInfo();
                objshowInfo.ShowID = objs.ShowID;
                objshowInfo.StartTime = objs.StartTime;
                objshowInfoList.Add(objshowInfo);
            }
            movieID = objs.MovieID;
            Screen = objs.Screen;
            count++;
        }

        obj2.ShowInfo = objshowInfoList;
        objShowingList.Add(obj2);
        return objShowingList;
    }
like image 40
manoj Avatar answered Nov 02 '22 06:11

manoj