使用 Web 服务时出错 return Json?

error when using web services return Json?

我有一个测试,想获取数据库中的信息 Table LOCATION,我使用 Web 服务和 return Json,但它是错误的。

 [WebMethod]
            [ScriptMethod(ResponseFormat = ResponseFormat.Json)]  
            public List<LOCATIONPARAM> VIEW_LOCATION()
            {
                using (QLTDEntities db = new QLTDEntities())
                {
                    List<LOCATIONPARAM> list = new List<LOCATIONPARAM>();
                    list = db.LOCATIONs.Select(e => new LOCATIONPARAM()
                    {
                        LOCATION_ID = e.LOCATION_ID,
                        LOCATION_NAME = e.LOCATION_NAME,
                        FLAG = e.FLAG
                    }).ToList();
                    return new JavaScriptSerializer().Serialize(list);
                }
            }

你的代码可以编译吗?

您的 return 类型是 List<LOCATIONPARAM>,但是 JavaScriptSerializer().Serialize( ) return 是一个字符串

https://msdn.microsoft.com/en-us/library/bb292287(v=vs.110).aspx

将 return 类型更改为字符串应该有效:

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]  
        public string VIEW_LOCATION()
        {
            using (QLTDEntities db = new QLTDEntities())
            {
                List<LOCATIONPARAM> list = new List<LOCATIONPARAM>();
                list = db.LOCATIONs.Select(e => new LOCATIONPARAM()
                {
                    LOCATION_ID = e.LOCATION_ID,
                    LOCATION_NAME = e.LOCATION_NAME,
                    FLAG = e.FLAG
                }).ToList();
                return new JavaScriptSerializer().Serialize(list);
            }
        }