簡體   English   中英

WCF + Json =錯誤的序列化

[英]WCF + Json = wrong serialization

為什么這個WCF 3.5方法

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Json
{
    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    public string Upper(string text)
    {
        return text.ToUpper();
    }
}

返回{"d":"TEXT"}

它應該返回{"TEXT"}

我正在使用jQuery調用。

    $("#upper").click(function() {
        $.ajax({
            type: "GET",
            url: "/Json.svc/Upper?text="+$("#input1").val(),
            success: function(data) {
                $("#input1").val(data.d);
            }
        });
    });

這是一個安全功能,已添加到.NET 3.5中的JSON序列化中。 它是一個容器對象,所以代替results[0] ,你只會說results.d[0] 閱讀本文以獲取更多信息。

我假設您在行為配置中使用<enableWebScript/> ,將其替換為<webHttp defaultOutgoingResponseFormat="Json"/> ,您將獲得沒有根“d”且沒有“__type”道具的json。

但是,我只在4.0中測試過這個

我也不在代碼中使用任何屬性。

您是否嘗試過改變BodyStyle您的[WebGet]屬性的屬性,以便響應不裹?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM