Skip to main content
 首页 » 编程设计

c#之在没有 string>/XML 的情况下需要 JSON 中的 webService

2024年08月06日28myhome

我正在使用 LINQ to SQL 在 C#/ASP.net 中创建 WebService Json 解析器。它正在运行,但我的 JSON 返回如下。

<string>[{"cli_id":1,"nome":"Joe"},{"cli_id":2,"nome":"Gary"},{"cli_id":3,"nome":"Ash"},{"cli_id":4,"nome":"Pedro"},{"cli_id":5,"nome":"Marcos"}]</string> 

我不想要字符串标签。

我正在尝试这段代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Script.Serialization; 
using System.Web.Script.Services; 
using System.Web.Services; 
 
/// <summary> 
/// Summary description for WebService 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
// 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 WebService : System.Web.Services.WebService { 
 
    public WebService () { 
 
 
    } 
 
    DataClassesDataContext dados = new DataClassesDataContext(); 
 
 
    [WebMethod] 
    public string getCustomers() { 
 
        var json = ""; 
 
        var clientes = from result in dados.clientes select result; 
 
        JavaScriptSerializer jss = new JavaScriptSerializer(); 
 
        json = jss.Serialize(clientes); 
 
        return json; 
 
    } 
 
} 

它返回一个 JSON,但带有 XML 和 <string> </string>

如何删除 XML?

请您参考如下方法:

我将我的代码更改为:

 [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
[WebMethod] 
public void getCustomers() { 
 
  //  var json = ""; 
    Context.Response.Clear(); 
    Context.Response.ContentType = "application/json";  
 
    var clientes = from result in dados.clientes select result; 
 
    JavaScriptSerializer jss = new JavaScriptSerializer(); 
 
    Context.Response.Write(jss.Serialize(clientes)); 
 
 
}