Convert Json format Response from webservice
.net, c#, json, web-services
Solution
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;
}
Problem
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.