하지만, 요즘은 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 으로 결과값을 받을 수 있다.














