2011-08-26 72 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

嗨阿伦变化从列表类的对象,那么你可以得到{}而不是[] ..