1

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");
        }
    }
}
4

1 に答える 1

1

HelloWorld メソッドの [WebMethod] の下に別の属性を追加するだけで、json を取得できます。

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
于 2013-01-28T07:43:28.880 に答える