C#ASP.NETWebサービスアプリケーションを作成しています。SQLデータベースのデータにアクセスし、このデータをXMLまたはJSONとして返す必要があります。HelloWorldメソッド(以下のコードを参照)を実行すると、データがXMLで返されます。ただし、SQLデータから独自のXMLタグを作成する必要があります。これはどのように行われますか?
さらに、WebサービスでXMLではなくJSONを使用するにはどうすればよいですか?
例として、SQLから2行2列のテーブルセットを返し、それをXMLでフォーマットするとします。
<returnSet>
<row1>
<FirstName>
David
</FirstName>
<LastName>
Faustino
</LastName>
</row1>
<row2>
<FirstName>
Henry
</FirstName>
<LastName>
Irons
</LastName>
</row2>
</returnSet>
何卒よろしくお願い申し上げます。
アップデート
以下のコードを変更して、JSONを返すようにしました。問題は、アプリケーションをデバッグしてメソッドをクリックしても、XMLが表示されることです。
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">"Hello World"</string>
私の期待は、以下のコードを記述してから、[デバッグ]=>[デバッグの開始]に移動することです。HelloWorldをクリックすると、出来上がり、JSON形式でデータが返されます。他の場所では、jQueryまたはプレーンJavaScriptを使用して呼び出している人がいます。それがJSONデータを返していることをテストする唯一の方法ですか?
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;
namespace WebApplication2
{
/// <summary>
/// Summary description for WebService1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize("Hello World");
}
}
}