转换Json格式的Web服务响应

本文关键字:服务 响应 Web Json 格式 转换 | 更新日期: 2023-09-27 18:26:51

我的web服务返回json数据,如下所示,但我想要的是第二个代码段中的数据。我的web服务和类如下所示。

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

但我想当

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

作为的Web服务的c#代码

[WebMethod]
public string NowShowingGetList(DateTime ShowDate)
{
    HomeController obj = new HomeController();
    JavaScriptSerializer js = new JavaScriptSerializer();
    string retJSON = js.Serialize(obj.NowShowingGetList(ShowDate));
    return retJSON;
}

分类为

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

此处为obj.NowShowingGetList(ShowDate)返回列表提前谢谢。

转换Json格式的Web服务响应

根据实体进行更改

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

在您的Web服务中进行相关更改

Infos是

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