asp.net – 如何从ASP Web服务的JSON响应中删除d:和__type

前端之家收集整理的这篇文章主要介绍了asp.net – 如何从ASP Web服务的JSON响应中删除d:和__type前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在网上找到了几个针对WCF Web服务而不是ASP Web服务的解决方案.

目前,我正在收到一条JSON响应说:

{"d":[{"__type":"NetworkFuzzWebSvc.Sessions","BaseUri":"http://localBox","SessionId":"43b8716f-40ab-43bf-8311-575c2ecd2730}]}

我需要它返回:

{"Sessions":["BaseUri":"http://localBox","SessionId":"43b8716f-40ab-43bf-8311-575c2ecd2730}]}

这是我正在使用的Web服务代码的副本(NetFuzzWebSvc.asmx):

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;

namespace NetworkFuzzWebSvc
{
    public class Sessions
    {
        public string BaseUri;
        public string SessionId;
    }

    /// <summary>
    /// Summary description for NetFuzzJson
    /// </summary>
    [WebService(Namespace = "http://localBox")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    [ScriptService]
    public class NetFuzzJson : WebService
    {
        List<Sessions> Sessions = new List<Sessions>
        {
            new Sessions{
                        BaseUri = "http://localBox/",SessionId="43b8716f-40ab-43bf-8311-575c2ecd2730"
            }
        };

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public List<Sessions> GetAllSessions()
        {
            return Sessions;
        }
    }

有人有解决方案吗?
谢谢!

解决方法

删除“d”和“__type”:

.SVC

[ServiceContract]
public interface ITestService
{
    [OperationContract]
    [WebInvoke(Method = "POST",RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    List<TestDTO> GetAll();
}

的.config

<behaviors>
  <endpointBehaviors>
    <behavior name="DebugJSonBehavior" >
      <enableWebScript />
      <!--need set automaticFormatSelectionEnabled attribute -->
      <webHttp automaticFormatSelectionEnabled="true" />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="DebugJSonBehavior" >
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

JS:

$.ajax({
        type: "POST",url: _serviceUrl + "/TestService.svc/GetAll",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: function (dataret) { ... },error: function (xmlHttpRequest,textStatus,errorThrown) {... },complete: function () { ... }
    });
原文链接:https://www.f2er.com/aspnet/251805.html

猜你在找的asp.Net相关文章