我有一個WCF服務,我正在構建一個名爲FinalList
的對象,其中包含一個名爲Chart的對象和一個List<Data>
。 我想回到我的AJAX功能JSON數據如下格式:WCF服務以Json格式返回對象
{ 「d」:{ 「圖表」:{ 「標題」: 「年」, 「exportatclient」: 「1」,」 exportenabled 「:」 1" , 「exporthandler」: 「chartExporter」, 「labelDisplay的」: 「包裹」, 「numberprefix」: 「」, 「showborder」: 「1」, 「slantLabels」: 「1」, 「useroundedges」: null,「yaxisname」:「數字 , 命中」},「data」:[{「label」:「1960s」,「link」:null,「tooltext」:null,「value」:3},{標籤 「:」 1970」, 「鏈接」:空, 「tooltext」:空, 「值」:56},{ 「標籤」: 「1980」, 「鏈接」:空, 「tooltext」:空, 「值」 :98}]}}
但是我的服務是這樣返回的:
{ 「d」:{ 「__類型」: 「FinalList:#MyNamespace.FusionChartsFields」, 「圖」:{ 「__類型」: 「圖表:#MyNamespace.FusionChartsFields」, 「標題」: 「年」 「exportatclient」: 「1」, 「exportenabled」: 「1」, 「exporthandler」: 「chartExporter」, 「labelDisplay的」: 「包裹」, 「numberprefix」: 「」, 「showborder」: 「1」,「slantLabels 「:」1「,」useroundedges「:null,」yaxisname「:」Number of hits「},」data「:[{」__ type「:」Data:#MyNamespace.FusionChartsFields「,」label「:」1960s 「 」鏈接「:NULL, 」tooltext「:NULL, 」值「:3},{ 」__類型「: 」數據:#MyNamespace.FusionChartsFields「, 」標籤「: 」20世紀70年代「, 」鏈接「:NULL,」 tooltext 「:空,」 值 「:56},{」 __類型 「:」 數據:#MyNamespace.FusionChartsFields」, 「標籤」: 「1980」, 「鏈接」:空, 「tooltext」:空, 「值」: 98}]}}
當我使用WebServices(asmx)時,我只需要將我的類聲明爲「對象」而不是FinalList,那麼結果就是我需要的正確的json格式。 (例如{「d」:{\「chart \」:{\「caption \」:\「Year \」))我試圖將它轉換爲字符串,它帶給我正確的東西,但包括'\'這不是我想要的。
有誰知道我可以如何刪除這些「__type」和類名?
我使用的.Net 4
我FinalList類如下:
public class FinalList
{
private Chart _chart;
private List<Data> _data = new List<Data>();
public Chart chart
{
get { return _chart; }
set { _chart = value; }
}
public List<Data> data
{
get { return _data; }
set { _data = value; }
}
}
我的服務合同中包含
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
其聲明之上。
什麼是你的模型類的定義是什麼樣子? ('__type'通常是DataContractSerializer關於如何翻譯接口或抽象基類的提示。) – faester
我的svc.cs中的類在它的聲明上面有「[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]]」。 – Jenninha