[英]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.