我正在创建一个C#ASP.NET Web服务应用程序。我需要从SQL数据库访问数据并将此数据作为XML或JSON返回。当您运行HelloWorld方法(请参阅下面的代码)时,它将以XML格式返回数据。但我需要从SQL数据中创建自己的XML标记。这是怎么做到的?
另外,如何让Web服务使用JSON而不是XML?
作为一个例子,假设我从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>
我的期望是写下面的代码,然后转到Debug =&gt;开始调试。单击 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");
}
}
}
答案 0 :(得分:1)
你可以在HelloWorld方法的[WebMethod]下添加另一个属性来获取json:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]