하지만, 요즘은 JSON 이 대세인지라... .Net 웹서비스도 JSON 결과값을 출력할 필요가 있다.
일단 간단하게 웹서비스를 하나 생성하고...
서비스 이름은 아무거나 주면 되지만, 나의 경운 testService 라고 주었다.
"다른 파일에 코드 입력" 이 체크되어 있어서 "testService.asmx" 에는 별 내용이 없다.
이대로 냅두면 되고...
"testService.cs" 를 아래와 같이 편집한다.
[Source]
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Script.Services; using System.Web.Script.Serialization; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class testService : System.Web.Services.WebService { public testService () { //InitializeComponent(); } [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string getMemberInfoJson() { Member[] info = new Member[] { new Member() { Id = "User01", Name= "Guest" }, new Member() { Id = "Son10001", Name= "Son" } }; return new JavaScriptSerializer().Serialize(info); } [WebMethod] public Member[] getMemberInfoXml() { Member[] info = new Member[] { new Member() { Id = "User01", Name= "Guest" }, new Member() { Id = "Son10001", Name= "Son" } }; return info; } public class Member { public string Id { get; set; } public string Name { get; set; } } }
다른건 별로 신경쓸것 없고, 아래에 표시한 상자의 내용만 주의 하면 된다.
이렇게 하고 웹에서 해당 웹서비스를 열어 보면...
이렇게 웹서비스가 2개 등록되어 있는게 보일것이다.
일단 JSON 이 목적이니 "getMemberInfoJson" 을 클릭해본다.
저기서 "호출" 이라는 버튼을 클릭해보면...
이렇게 JSON 형태로 결과값이 나온다.
마찬가지로 "getMemberInfoXml" 선택해 호출하면...
이렇게 Xml 로 결과 값이 나온다.
이걸 웹에서 jQuery 로 호출해 보면...
<%@ Page Language="C#" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="js/jquery-1.4.4.min.js"></script> <script src="js/jquery-ui-1.8.8.custom.min.js"></script> <script> function HelloQuery() { $.ajax({ type:"POST", url: "http://localhost:915/_Test/testService.asmx/getMemberInfoJson", processData:false, contentType:"Application/json;charset=utf-8", dataType:"json", success:function (data) { alert(data.d); } }); } </script> </head> <body> <form id="form1" runat="server"> <div> <a href="#" onclick="HelloQuery()">Test</a> </div> </form> </body> </html>
이렇게 웹페이지를 만들고...
클릭해 호출... 하면...
이렇게 JSON 으로 결과값을 받을 수 있다.