2011-08-26 54 views
0

我開發了一個REST WCF並測試了post方法,我做了簡單的調用並希望以json格式返回輸出。以下是我的SVC和代碼背後來自REST的預期Json格式WCF

Iservice:

[OperationContract ] 
    [WebInvoke(Method = "POST", 

     RequestFormat = WebMessageFormat.Xml,    
     ResponseFormat = WebMessageFormat.Json, 
     BodyStyle = WebMessageBodyStyle.Bare, 
     UriTemplate = "heroku/resources")] 
    User PostData(User objUser); 

Service.cs:

public User PostData(User objUser) 
    { 
     User usr = new User(); 
     usr.id = 100; 
     List<string> lst = new List<string>(); 
     lst.Add("MY_URL"); 
     lst.Add("MY"); 

     usr.config = lst; 
     usr.message = "msg"; 

     return usr;    
    } 

用戶等級:

[DataContract(Namespace = "http://localhost/RestWCFDemo/UserData")] 
public class User 
{ 
    [DataMember] 
    [JsonProperty] 
    public int id 
    { 
     get; 
     set; 
    } 

    [DataMember] 
    [JsonProperty] 

    public List<string> config 
    { 
     get; 
     set; 
    } 

    [DataMember] 
    [JsonProperty] 
    public string message 
    { 
     get; 
     set; 
    } 
} 

現在從後面ASPX文件的代碼,我叫這個服務,並指定該服務對文本框的響應和我得到的結果是:{「config」:[「MY_URL」,「我」],「id」:100 ,「message」:「msg」}但是我期望以這種格式{「config」:{...},「id」:100,「message」:「msg」}輸出,主要問題是[]而不是{ }。

+0

的{}在JSON是與性能申報對象。 []用於值的集合(數組)。在C#中,List是一組值。 什麼是「MY_URL」和「我的」?他們是屬性嗎?如果是這樣,你爲什麼將它們創建爲List中的字符串?你在哪裏存儲他們的價值? –

+0

是的馬丁你是對的。 –

回答

0

嗨阿倫變化從列表類的對象,那麼你可以得到{}而不是[] ..