2017-06-07 17 views
0

C#のJSON応答を無効にする方法<MethodName>結果:をクラス名に変換しますか?C#JSONカスタム結果リスト名

常にメソッド名+結果を返します。クラス名に変更する方法はありますか?

私のコードで何か間違っていますか?

は、ここに私のExchange_Reasonクラス

[DataContract] 
public class Exchange_Reason 
{ 
    [DataMember] 
    public string Exchange_Reason_ID { get; set; } 

    [DataMember] 
    public string Reason { get; set; } 

    [DataMember] 
    public string Status { get; set; } 
} 

マイサービス契約

[OperationContract] 
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "getExchange_Reason_List")] 
    List<Exchange_Reason> GetExchange_Reason_List(); 

実装

public List<Exchange_Reason> GetExchange_Reason_List() 
{ 
    List<Exchange_Reason> results = new List<Exchange_Reason>(); 
    ... 
    while (reader.Read()) 
    { 
      results.Add(new Exchange_Reason() 
      { 
       Exchange_Reason_ID = reader["Exchange_Reason_ID"].ToString(), 
       Reason = reader["Reason"].ToString(), 
       Status = reader["Status"].ToString() 
      }); 
    } 
    return results; 
} 

そして結果だ

{ 
    GetExchange_Reason_ListResult: [ 
     { 
      Exchange_Reason_ID: "1000001", 
      Reason: "Rotten", 
      Status: "Active" 
     }, 
     { 
      Exchange_Reason_ID: "1000002", 
      Reason: "Expired", 
      Status: "Active" 
     } 
    ] 
} 

私はそれをする必要があります事前に

{ 
    Exchange_Reasons: [ 
     { 
      Exchange_Reason_ID: "1000001", 
      Reason: "Rotten", 
      Status: "Active" 
     }, 
     { 
      Exchange_Reason_ID: "1000002", 
      Reason: "Expired", 
      Status: "Active" 
     } 
    ] 
} 

感謝。

答えて

1

あなたのBodyStyleがラップされているためです。最初にWebInvokeからBodyStyleを取り除き、出力を希望通りに折り返します。私はあなたがこれをしたいと仮定します。

[DataContract] 
public class GetExchange_Reason_ListResult 
{ 
    [DataMember] 
    public Exchange_Reason[] Exchange_Reasons { get; set; } 
} 

public class Exchange_Reason 
{ 
    public string Exchange_Reason_ID { get; set; } 
    public string Reason { get; set; } 
    public string Status { get; set; } 
} 

あなたの方法は次のようにする必要があります:

[OperationContract] 
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "getExchange_Reason_List")] 
GetExchange_Reason_ListResult GetExchange_Reason_List();