私は WCF サービスを持っており、FinalList
Chart というオブジェクトとList<Data>
. 以下の形式で ajax 関数の json データに戻りたい:
{"d":{"chart":{"caption":"年","exportatclient":"1","exportenabled":"1","exporthandler":"chartExporter","labelDisplay":"wrap" ,"numberprefix":"","showborder":"1","slantLabels":"1","useroundedges":null,"yaxisname":"ヒット数"},"data":[{"ラベル" :"1960s","link":null,"tooltext":null,"value":3},{"label":"1970s","link":null,"tooltext":null,"value":56 },{"ラベル":"1980 年代","リンク":null,"ツールテキスト":null,"値":98}]}}
ただし、私のサービスは次のように返されます:
{"d":{"__type":"FinalList:#MyNamespace.FusionChartsFields","chart":{"__type":"Chart:#MyNamespace.FusionChartsFields","caption":"年","exportatclient":" 1","exportenabled":"1","exporthandler":"chartExporter","labelDisplay":"wrap","numberprefix":"","showborder":"1","slantLabels":"1", "useroundedges":null,"yaxisname":"ヒット数"},"data":[{"__type":"Data:#MyNamespace.FusionChartsFields","label":"1960s","link":null, "tooltext":null,"value":3},{"__type":"Data:#MyNamespace.FusionChartsFields","label":"1970s","link":null,"tooltext":null,"value":56},{"__type":"Data:#MyNamespace.FusionChartsFields","label":"1980s","link ":null,"tooltext":null,"value":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)]
その宣言の上。