2013-08-07 34 views
5

dữ liệu json trả về dịch vụ web của tôi như được đưa ra dưới đây nhưng tôi muốn giống như trong CodeSnipts thứ 2. dịch vụ web và lớp học của tôi như được đưa ra dưới đây.Chuyển đổi định dạng Json Trả lời từ webservice

  { "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" 
     } 

nhưng tôi muốn như

{ 
     "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" 
      } 
     ] 
    } 

C# mã của tôi cho Webservice như Danh sách

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

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

lớp như

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; } 
} 

đây obj.NowShowingGetList(ShowDate) trở Thankyou trước.

+1

Bạn cần phải tạo ra một mới tên lớp ShowInfo và quảng cáo d Mảng hoặc Danh sách của nó trong NowShowingInfo. Lớp ShowInfo sẽ chứa tên thuộc tính: ShowId và StartTime –

+1

Bạn cần tạo một lớp mới ShowInfo và thêm Array hoặc List of the NowShowingInfo. Lớp ShowInfo sẽ con – manoj

Trả lời

2

Infos như

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; } 
    } 

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; 
    } 
5

Thực hiện thay đổi theo đơn vị

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; } 
} 

làm liên quan thay đổi trong webservice của bạn

+0

làm thế nào tôi có thể chuyển đổi NowShowingInfo của mình thành NowShowingInfo obj.NowShowingGetList (ShowDate) của bạn trả về NowShowingInfo của kiểu của tôi – user2641905

+0

Bạn có phải là newbie ??? –

+0

newbie nghĩa là @NisargShah – user2641905

Các vấn đề liên quan