【问题标题】:Expected Json Format from REST WCF来自 REST WCF 的预期 Json 格式
【发布时间】:2011-08-26 10:40:40
【问题描述】:

我开发了一个 REST WCF 并测试发布方法,我进行了简单的调用并希望以 json 格式返回输出。以下是我的 SVC 和背后的代码

服务:

    [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","MY"],"id":100, "message":"msg"} 但是我希望以这种格式输出 {"config":{...},"id":100,"message":"msg"} ,主要问题是 [ ] 而不是 { } .

【问题讨论】:

  • JSON 中的 {} 用于声明具有属性的对象。 [] 用于值的集合(数组)。在 C# 中,List 是值的集合。什么是“MY_URL”和“MY”?它们是属性吗?如果是这样,为什么要将它们创建为列表中的字符串?您将它们的值存储在哪里?

标签: asp.net wcf rest


【解决方案1】:

Hey Arun 从列表更改为类对象,然后您可以获得 {} 而不是 []..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2016-01-03
    • 2012-03-19
    相关资源
    最近更新 更多